var $custDetail = $('#custDetail'); //公司资料
var $contactListDetail = $('#contactListDetail'); //联系人名录
var $memberFinishOrderProductDetail = $('#memberFinishOrderProductDetail'); //产品明细  会员产品
var $nonMemberFinishOrderProductDetail = $('#nonMemberFinishOrderProductDetail'); //非会员产品
var $contractDetail = $('#contractDetail'); //合同
var $orderDetail = $('#orderDetail'); //订单
var $modificationRecordListDetail = $('#modificationRecordListDetail');  //修改记录
var $demandAnalysisListDetail = $('#demandAnalysisListDetail');  //需求分析
var $competitorListDetail = $('#competitorListDetail');  //竞品列表
var $opportunityListDetail = $('#opportunityListDetail');  //商机管理
var $workLogListcDetail = $('#workLogListcDetail');  //工作日志
var $nxContactList = $('#nxContactList');  //内训联系人
var $cardList = $('#cardList');  //会员卡
var $taxCardList = $('#taxCardList');  //税法直通车
var $couponList = $('#couponList');  //优惠券
var $followUpRecordDetail = $('#followUpRecordDetail');  //跟进记录
var $visitRecordDetail = $('#visitRecordDetail');  //拜访记录
var customerPoolId = $('#customerPoolId').text();
var customerId = $('#customerId').text();
var customerCompanyInfoId = "";
var scoreLevel = $("#scoreId").val();
var $redeemProductsTableDetail = $('#redeemProductsTableDetail');//兑换产品
var $exchange = $('#exchangeDetail');//兑换
var $addBeforeExchange = $('#addBeforeExchange');//兑换前产品
var $addAfterExchange = $('#addAfterExchange');//兑换后产品
var $renewTable = $('#renewTable');//新增续费
var renewContractNumber = ""; // 续费合同编号
var $ruleTable = $("#ruleTable");//会员卡权益兑换
var filterContent = ['先生', '小姐','女士','老师','会计'];

var isHxx;

var $usedNameTable = $('#usedNameTable'); // 曾用名及企业关联

var getDetails;
var bs;
var productOrderId,finishOrderProductNum,changeProductCode,finishOrderProductId,finishProductName,productId;//会员列表下的字段(订单id,产品号,产品编码，finishOrderProductId，productName)
var productListData=[];//会员卡权益兑换规则表数据

//防止表头与表格不对齐
$(window).resize(function () {
    $custDetail.bootstrapTable('resetView');
    $contactListDetail.bootstrapTable('resetView');
    $modificationRecordListDetail.bootstrapTable('resetView');  //修改记录
    $renewTable.bootstrapTable('resetView');
    $usedNameTable.bootstrapTable('resetView');
    $ruleTable.bootstrapTable('resetView');
    $cardList.bootstrapTable('resetView');
    $taxCardList.bootstrapTable('resetView');
    $couponList.bootstrapTable('resetView');
});

/**
 * 功能：标签回显
 * */
function tagsShow(data) {
    if (data) {
        var tagsArr = data.split(',');
        $('#tagsBox').html('');
        $.each(tagsArr, function (index, element) {
            $('#tagsBox').append('<span>' + element + '</span>');
        });
    } else {
        $('#tagsBox').html('<span class="no-tag">暂无标签</span>');
    }
}

$(function () {
    // 返回按钮功能
    $('#backBtn').on('click', function () {
        var $thisTabs = parent.$('.mt-nav-bar .nav-tabs').find('li.active');
        var navTab = parent.$multitabs._getNavTab($thisTabs);
        openTab("我的客户","/front/customerManager/myCustomerPool");

        /*$.alert({
            title: '提示',
            content: '确认关闭并返回我的客户列表吗？',
            buttons: {
                cancel: {
                    text: '直接返回',
                    btnClass: 'btn-link',
                    action: function () {
                        openTab("我的客户","/front/customerManager/myCustomerPool");
                    }
                },
                confirm: {
                    text: '确定',
                    btnClass: 'btn-primary',
                    action: function () {
                        closeTab(navTab);
                        openTab("我的客户","/front/customerManager/myCustomerPool");
                        delStorageAndRemove(navTab);
                    }
                },
            }
        });*/
    })

    $('#editInfo').on('click', function () {
        infoModalEcho();
    });

    $('#defray').selectpicker({
        sanitize: true,
        size: 12
    })

    // 判断是否为会员
    if (memberStatus == '该客户不是会员') {
        $('.vip').addClass('no-vip');
    }

    // 编辑弹窗显示时刷新弹窗内容
    $('.modal').on('hide.bs.modal', function () {
        $(this).find('form').bootstrapValidator('resetForm');
    });

    $('select').selectpicker({
        size: 12
    });
    $('.modal').on('hidden.bs.modal', function () {
        $(this).find('select').selectpicker('refresh');
    }).on('show.bs.modal', function () {
        // $(this).find('select').selectpicker('refresh');
    });
    // 标签回显
    tagsShow(customer.tag);

    // $('#editInfoModal').modal('show');

    $('#moreInfo').on('shown.bs.collapse', function () {
        $('#btnCollapse').html('点击收起 <i class="mdi mdi-chevron-double-up"></i>');
    }).on('hidden.bs.collapse', function () {
        $('#btnCollapse').html('更多详情 <i class="mdi mdi-chevron-double-down"></i>');
    });

    //设置初始跳转跟进记录（遗忘提醒）页面
    hrefType = $('#hrefType').val();
    $("#"+hrefType).click();

    $("#registrationTime").datepicker({
        language: "zh-CN",
        autoclose: true,
        clearBtn: true,
        todayHighlight: true,
        format: "yyyy-mm-dd"
    });

    // getProvince();
    // 初始化标签页内table
    contactListc('1');
    /*companyInfo();
    companyInformationc('0');*/
    // $('.top').css('display', 'flex');
    // $(".topEdit").css('display', 'none');

    // 评分插件
    score('#showScore');

    $('#tag').on('itemRemoved', function(event) {
        if ($(this).val() == '') {
            $(this).attr('value', $(this).val());
        }
    });

    // 编辑客户信息表单验证
    // $('#editInfoForm').bootstrapValidator(validatorJson);

    // timeDataOld()

    // 附加费用
    $('#surcharge').on('change', function () {
        if ($(this).val() == '' || $(this).val() == '0') {
            $('.surcharge-remarks').hide();
        } else {
            $('.surcharge-remarks').show();
        }
        priceTotal();
    })

    // 解决table中点击行选中与checkbox冲突问题
    $('table').on('load-success.bs.table', function (e,data) {
        $(e.target).find('label.lyear-checkbox').on('click', function (e) {
            e.stopPropagation();
        })
    });
    //续费弹框验证
    $('#renewDetailForm').bootstrapValidator({
        fields: {
            orderSurchargeRemark:{
                validators: {
                    notEmpty: {
                        message: '备注不能为空'
                    }
                }
            },
            customerContractList:{
                validators: {
                    notEmpty: {
                        message: '客户联系人不能为空'
                    }
                }
            },
            contractDate:{
                trigger:"change",
                validators: {
                    notEmpty: {
                        message: '合同起止日期不能为空'
                    }
                }
            },
            contractImg:{
                validators: {
                    notEmpty: {
                        message: '请上传附件'
                    }
                }
            },
            examineImgBox:{
                validators: {
                    notEmpty: {
                        message: '请上传附件'
                    }
                }
            },
            contractReviewNotes:{
                validators: {
                    notEmpty: {
                        message: '审核备注不能为空'
                    }
                }
            },
            defray:{
                validators: {
                    notEmpty: {
                        message: '请选择支付方式'
                    }
                }
            }

        }

    })

    $('#editCompanyForm').bootstrapValidator({
        excluded: [":disabled"],
        fields: {
            companyIncomeE: {
                validators: {
                    notEmpty: {
                        message: '公司收益不能为空'
                    },
                    regexp: {
                        regexp: /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,4})))$/,
                        message: '请输入正确的公司收益'
                    }
                }
            },
            companyNumberE: {
                validators: {
                    notEmpty: {
                        message: '公司数量不能为空'
                    },
                    regexp: {
                        regexp: /^\d+$/,
                        message: '请输入正确的公司数量'
                    }
                }
            },
            productServiceNumberE: {
                validators: {
                    notEmpty: {
                        message: '产品服务数量不能为空'
                    },
                    regexp: {
                        regexp: /^\d+$/,
                        message: '请输入正确的产品服务数量'
                    }
                }
            },
            financingSituationE: {
                validators: {
                    notEmpty: {
                        message: '融资情况不能为空'
                    }
                }
            },
            upstreamCompanyE: {
                validators: {
                    notEmpty: {
                        message: '上游公司不能为空'
                    }
                }
            },
            downstreamCompanyE: {
                validators: {
                    notEmpty: {
                        message: '下游公司不能为空'
                    }
                }
            },
            companyProfileE: {
                validators: {
                    notEmpty: {
                        message: '公司简介不能为空'
                    }
                }
            },
        }
    });
    $('#addContactForm').bootstrapValidator({
        fields: {
            contactNameAdd: {
                validators: {
                    /*notEmpty: {
                        message: '联系人姓名不能为空'
                    }*/
                    callback: {
                        callback: function(value, validator) {
                            if (value) {
                                if(value.length < 2) {
                                    return {valid: false, message: '联系人姓名最少两个字'};
                                }
                                for (let index=0; index < filterContent.length; index++) {
                                    var elem = filterContent[index];
                                    if (value.indexOf(elem) != -1) {
                                        return {valid: false, message: '联系人姓名非法文字'};
                                        return false;
                                    }
                                }
                                return true;
                            } else {
                                return {valid: false, message: '联系人姓名不能为空'};
                            }
                        }
                    }
                }
            },
            contactInformationAdd: {
                /*validators: {
                    notEmpty: {
                        message: '联系方式不能为空'
                    },
                    regexp: {
                        regexp: /^(0|86|17951)?(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|14[57])[0-9]{8}$/,
                        message: '请输入正确的联系方式'
                    }
                }*/
                validators: {
                    trigger:"change",
                    notEmpty: {
                        message: '联系方式不能为空'
                    },
                    // phone: {
                    //     country: 'CN',
                    //     message: '请输入正确的联系方式'
                    // },
                    stringLength:{
                        max:12,
                        message:'请输入正确的联系方式'
                    }
                }
            },
            mailBoxAdd: {
                validators: {
                    regexp:{
                        regexp:'/^[A-Za-z\\d]+([-_.][A-Za-z\\d]+)*@([A-Za-z\\d]+[-.])+[A-Za-z\\d]{2,4}$/',
                        message:'请输入正确的邮箱'
                    }
                }
            }
            /*contactType: {
                validators: {
                    notEmpty: {
                        message: '联系类型不能为空'
                    }
                }
            },
            contactTypeQt: {
                validators: {
                    notEmpty: {
                        message: '其他联系类型不能为空'
                    }
                }
            },
            contactState: {
                validators: {
                    notEmpty: {
                        message: '联系人类型不能为空'
                    }
                }
            },
            contactInformationType: {
                validators: {
                    notEmpty: {
                        message: '联系方式类型不能为空'
                    }
                }
            },
            contactPositionAdd: {
                validators: {
                    notEmpty: {
                        message: '职务不能为空'
                    }
                }
            },
            isSeniorExecutive: {
                validators: {
                    notEmpty: {
                        message: '职务状态不能为空'
                    }
                }
            },
            onTheJobSituationAdd: {
                validators: {
                    notEmpty: {
                        message: '在职情况不能为空'
                    }
                }
            },
            industry: {
                validators: {
                    notEmpty: {
                        message: '行业不能为空'
                    }
                }
            },
            wxAdd: {
                validators: {
                    notEmpty: {
                        message: '微信不能为空'
                    }
                }
            },*/

            /*currentIntention: {
                validators: {
                    notEmpty: {
                        message: '目前意向不能为空'
                    }
                }
            },
            province: {
                validators: {
                    notEmpty: {
                        message: '省份不能为空'
                    }
                }
            },
            city: {
                validators: {
                    notEmpty: {
                        message: '市不能为空'
                    }
                }
            },
            companyAddress: {
                validators: {
                    notEmpty: {
                        message: '公司地址不能为空'
                    }
                }
            },
            homeAddress: {
                validators: {
                    notEmpty: {
                        message: '家庭住址不能为空'
                    }
                }
            },*/
        }
    });
    $('#demandAnalysisForm').bootstrapValidator({
        excluded: [":disabled"],
        fields: {
            demandAnalysisName: {
                validators: {
                    notEmpty: {
                        message: '需求分析名称不能为空'
                    }
                }
            },
            solution: {
                validators: {
                    notEmpty: {
                        message: '解决方案不能为空'
                    }
                }
            },
        }
    });
    $('#edditContactForm').bootstrapValidator({
        excluded: [":disabled"],
        fields: {
            mailBox: {
                validators: {
                    /*notEmpty: {
                        message: '邮箱不能为空'
                    },*/
                    emailAddress: {
                        message: '邮箱格式不正确'
                    }
                }
            },
            /*wx: {
                validators: {
                    notEmpty: {
                        message: '微信不能为空'
                    }
                }
            },*/
        }
    });

    // $('.tabs-lg li:eq(2) a').tab('show');
    $('.tagsinput').on('itemAdded', function(event) {
        // 添加标签
        var tagStr = $(this).val();
        baseInfo('2', tagStr)
    }).on('itemRemoved', function(event) {
        var tagStr = $(this).val();
        // 删除标签
        baseInfo('2', tagStr)
    })


    $('#usedNameModal').on('show.bs.modal', function () {
        formerName();
    })
    $('#addNewData').on('click', function () {
        $.alert({
            columnClass: 'col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2 col-xs-10 col-xs-offset-1',
            icon: 'mdi mdi-bell-outline tips-icon',
            title: '重要提醒',
            titleClass: 'add-tips-title',
            content: '添加及关联客户曾用名数据，要经过数据核验，请保证数据真实，如果数据核实发现错误，将封禁此功能，人工无法调整，6个月后系统自动解封！',
            buttons: {
                cancel: {
                    text: '取消',
                    btnClass: 'btn btn-link m-r-15'
                },
                confirm: {
                    text: '确认',
                    btnClass: 'btn-primary',
                    action: function () {
                        $('#addNewDataModal').modal('show');
                    }
                }
            }
        })
        // $('#addNewDataModal').modal('show');
    });
    $('#addNewDataModal').on('hidden.bs.modal', function () {
        $(this).find('input').val('');
        $(this).find('select').val('').selectpicker('refresh');
        $('.addUnifiedSocialCreditCode').slideUp(120);
        // 清除验证
        $('#addNewDataForm').data('bootstrapValidator').resetForm(true);
    })
    $('#addRelationType').on('changed.bs.select', function () {
        if ($(this).val() == 1) {
            $('.addUnifiedSocialCreditCode').slideDown(120);
        } else {
            $('.addUnifiedSocialCreditCode').slideUp(120);
        }
        $('#addCustomerName').val('');
        // 清除表单已有验证
        var bootstrapValidator = $("#addNewDataForm").data('bootstrapValidator');
        if (bootstrapValidator) {
            $("#addNewDataForm").data('bootstrapValidator').destroy();
            $('#addNewDataForm').data('bootstrapValidator', null);
        }
    })

    $('#abolishState').on('click', function () {
        contactListc('1');
    });

    // 新增联系人弹窗职务交互逻辑
    $('#contactPositionAdd, #contactPosition').on('keyup', function (e) {
        var value = $(this).val();
        if (value != '') {
            $(this).parent().removeClass('open');
        }
    });
    $('#contactPositionAdd').next('.dropdown-menu').find('a').on('click', function () {
        $('#contactPositionAdd').val($(this).html());
    })
    $('#contactPosition').next('.dropdown-menu').find('a').on('click', function () {
        $('#contactPosition').val($(this).html());
    })

    $('#editInfoModal').on('show.bs.modal', function () {
        getProvince();
        $(this).find('select').selectpicker('refresh');
    })
});

// 渲染省市列表
function getProvince() {
    let provinceNames = ['<option value="init">请选择</option>'];
    $.each(cityJson[0], function(key, value){
        provinceNames.push('<option value="' + key + '" ' + (((value.indexOf(customer.provinceName) > -1 || customer.provinceName.indexOf(value) > -1) && customer.provinceName !='') ? 'selected' : '') + '>' + value + '</option>');
    });
    $('#editProvince').html(provinceNames.join(''));
    getCity($('#editProvince').val());
}
// 根据省获取市
function getCity(provinceId) {
    $('#city').html('');
    let key = '0,'+provinceId;
    let cityNames = ['<option value="init">请选择</option>'];
    if(provinceId != 'init'){
        $.each(cityJson[key], function(key, value){
            cityNames.push('<option value="' + key + '" ' + (value == customer.cityName ? 'selected' : '') + '>' + value + '</option>')
        });
    }
    $('#editCity').html(cityNames.join(''));
    getOrangin($('#editProvince').val(), $('#editCity').val());
}
// 获取区
function getOrangin(provinceId, cityId) {
    $('#editCounty').html('');
    let key = '0,'+provinceId+ ',' + cityId;
    let oranginNames = ['<option value="init">请选择</option>'];
    if(provinceId != 'init' && cityId != 'init'){
        $.each(cityJson[key], function(key, value){
            oranginNames.push('<option value="' + key + '" ' + (value == customer.countyName ? 'selected' : '') + '>' + value + '</option>')
        });
    }
    $('#editCounty').html(oranginNames.join(''));
    $('#editInfoForm select').selectpicker('refresh');
}
// 切换省
function changeProvince() {
    getCity($('#editProvince').val());
    getOrangin($('#editProvince').val(), $('#editCity').val());
}
// 切换城市
function changeCity() {
    getOrangin($('#editProvince').val(), $("#editCity").val());
}


/**
 * 功能：修改logo
 * */
function editLogo() {

}

/**
 * 功能：新增竞品弹窗获取预算负责人
 * */

// 获取联系人
function changeName(_this) {
    var $this = _this;
    //联系人姓名
    var name = $.trim($("#budgetDirector").val());
    //从哪跳转到跟进页面（0：线索；1：客户）
    var source = 1;
    //线索/客户id
    var id = customer.customerId;
    var status;
    if (!name) {
        status = '0';
    } else {
        status = '1';
    }
    $.ajax({
        url: '/clueContact/clueContact/echo',
        data: {
            name: name,
            status: status,
            id: id,
            source: source
        },
        type: "POST",
        contentType: "application/x-www-form-urlencoded",
        success: function (data) {
            if (data.code == '000000') {
                $("#nameBox").css("display", 'block');
                $("#nameBox").html('');
                if (data.data.length <= 0) {//把页面上之前赋值的联系人id置空
                } else {
                    let str = '';
                    for (let i = 0; i < data.data.length; i++) {
                        str += '<li><a href="javascript:void(0);" class="name-item" onclick="getTel(\'' + data.data[i].contactName + '\',\'' + data.data[i].contactInformation + '\')">' + data.data[i].contactName + '</a></li>'
                    }
                    $("#nameBox").html(str);
                }
            }
        }
    });

    // 点击输入框和下拉菜单以外范围，关闭提示下拉菜单
    $(document).click(function (e) {
        var con = $($this).parents('.form-content');
        if (!con.is(e.target) && con.has(e.target).length === 0) {
            $("#nameBox").slideUp(160);
        }
    })
}

//
function getTel(name, phone) {
    $("#budgetDirector").val(name);
    $("#directorInformation").val(phone);
    $('#directorInformation').change()
    $('#budgetDirector').change()
    $("#nameBox").css("display", 'none');

    // 验证表单
    var bootstrapValidator = $("#competitorForm").data('bootstrapValidator');
    if (bootstrapValidator) {
        bootstrapValidator.updateStatus('budgetDirector', 'NOT_VALIDATED').validateField('budgetDirector');
        bootstrapValidator.updateStatus('directorInformation', 'NOT_VALIDATED').validateField('directorInformation');
    }
}

/***

 // 合同起止日期*/
/*function timeDataOld(){
    $('#contractDate').daterangepicker({
        startDate: moment().startOf('hour'),
        endDate: moment().startOf('hour').add(24, 'hour'),
        locale: {
            format: 'YYYY-MM-DD',
            cancelLabel: '清空',

        },
        drops:'up',
        pickerPosition:'top-right',
        timePicker24Hour : true,
        autoUpdateInput: false,
    }).on('hide.daterangepicker',function(e) {
        $('#contractDate').change()
        $('#renewDetailForm').data('bootstrapValidator')
            .updateStatus('contractDate', 'NOT_VALIDATED',null)
            .validateField('contractDate');
    });  
    $('#contractDate').on('apply.daterangepicker', function(ev, picker) {
        $(this).val(picker.startDate.format('YYYY-MM-DD') + ' 至 ' + picker.endDate.format('YYYY-MM-DD'));
        // if($('#customerForm').data('bootstrapValidator')!=undefined){
            $('#renewDetailForm').data('bootstrapValidator')
                .updateStatus('contractDate', 'NOT_VALIDATED',null)
                .validateField('contractDate');
        // }

    });
    $('#contractDate').on('cancel.daterangepicker', function(ev, picker) {
        $(this).val('');
    })
}*/


function addContract() {
    parent.$(parent.document).data('multitabs').create({
        iframe : true,
        title : '新建合同',
        url : "/front/contractManager/userAddContract?tag=2&customerId=" + customerId + '&customerName=' + customer.customerName
    }, true);
}

/**
 * 功能: 呼出拨号窗口
 * 参数: customerId-客户id contactData-联系人相关数据([{}]数组形式传递)  flag: 2-公司电话外拨操作
 * */
function callCenter(element, flag) {
    if (flag == '1') {
        /*
        * 拨打公司电话，按核实电话规则处理
        * */
        var phoneNum = $(element).prev('span').text();
        var contactData = [{
            contactId: '',
            contactName: '',
            contactDetails: [phoneNum]
        }];
        window.parent.callModal(customerId, contactData, 4);
    } else {
        /*
        * 拨打联系人电话
        * */
        var rowUniqueId = $(element).parents('tr').data('uniqueid');
        var $table = $(element).parents('table');
        var rowData = $table.bootstrapTable('getRowByUniqueId', rowUniqueId);

        var contactId;
        // 根据不同table获取相关联系人的contactId
        switch ($table[0].id) {
            case 'contactListDetail':   // 联系人名录
            case 'custDetail':          // 公司资料
            case 'visitRecordDetail':   // 拜访记录
                // 调取接口获取联系人id
                contactId = contactDetail(rowData.contactName || rowData.accompanyVisitPeople, rowData.contactInformation, rowData.customerId, true);
                break;
            case 'followUpRecordDetail':// 跟进记录
            case 'competitorListDetail':// 竞品列表
                // 直接获取联系人id
                contactId = rowData.contactId;
                break;
        }

        var contactData = [{
            contactId,
            contactName: rowData.contactName || rowData.accompanyVisitPeople || rowData.budgetDirector,
            contactDetails: [rowData.contactInformation || rowData.directorInformation]
        }];
        window.parent.callModal(customerId, contactData, 1);
    }
}

function infoModalEcho() {
    // $('#imageId').text(customer.uploadId);
    // $('#newsPic').attr('src', customer.accessUrl);
    $('#customerName').val(customer.customerName);
    // $('#tag').tagsinput('removeAll');
    // $('#tag').tagsinput('add', customer.tag);
    $('#customerType').val(Number(customer.customerType) ? '个人客户' : '企业客户');
    $('#customerNumber').val(customer.customerNumber);
    $('#originalCustomerId').val(customer.originalCustomerId);
    $('#unifiedSocialCreditCode').val(customer.unifiedSocialCreditCode);
    $('#companyType').selectpicker('val', customer.companyType);
    $('#industryx').selectpicker('val', customer.industry);
    $('#legalRepresentative').val(customer.legalRepresentative);
    $('#companySize').selectpicker('val', customer.companySize);
    $('#registeredCapital').val(customer.registeredCapital);
    $('#financialNumber').val(customer.financialNumber);
    if (customer.contactPerson == '' || customer.contactPerson == null || customer.contactPersonPhone == '' || customer.contactPersonPhone == null) {
        $('.contact-people').show(0);
        $('#contactPerson').val(customer.contactPerson || '');
        $('#contactPersonPhone').val(customer.contactPersonPhone || '');
    } else {
        $('.contact-people').hide(0);
        $('.contact-people').find('input').prop('disabled', true);
        $("#contactPerson").val(customer.contactPerson)
        $("#contactPersonPhone").val(customer.contactPersonPhone)
    }
    $('#enterpriseExternalLandline').val(customer.enterpriseExternalLandline);
    $('#companyWebsite').val(customer.companyWebsite);
    // $('#registrationTime').val(customer.registrationTime);
    $("#registrationTime").datepicker({
        language: "zh-CN",
        autoclose: true,
        clearBtn: true,
        todayHighlight: true,
        format: "yyyy-mm-dd"
    })
    $('#registrationTime').datepicker('setDate', customer.registrationTime);
    $('#fax').val(customer.fax);
    $('#email').val(customer.email);
    $('#address').val(customer.detailedAddress);
    $('#remark').val(customer.remark);

    // $('#editInfoForm').bootstrapValidator('resetForm');
}

// 评分插件
function score(id) {
    $(id).raty({
        path: '/images',
        targetType: 'hint',
        hints: ['差', '一般', '好', '非常好', '全五星'],
        size: 24,
        starOff: 'star-off.png',
        starOn: 'star-on.png',
        targetKeep: true,
        score: scoreLevel,
        readOnly: false,
        click: function(score, evt) {
            $.ajax({
                url: '/customerController/updateCustomerRating',
                type: 'POST',
                dataType: "json",
                data: {
                    customerId,
                    customerRating: score,
                },
                success: (function (data) {
                    if (data.code == "000000") {
                        $.notify({
                            message: '客户评分修改成功！',
                        }, {
                            type: 'success'
                        })
                    } else {
                        $.notify({
                            message: '客户评分修改失败，请重试！',
                        }, {
                            type: 'danger'
                        });
                    }
                }),
                error: (function () {
                    promptInfo("失败");
                })
            })
        }
    });
}
/**
 * 功能：编辑客户详情
 * 参数: type 1-修改logo 2-添加删除标签
 * */
function baseInfo(type, tagStr) {
    var jsonData,   // 提交数据
        url;        // ajax接口地址
    if (type == '1') {
        // 修改logo
        url = '/customer/updateCustomerImgAndTag';
        var imageId = $('#imageId').text();
        jsonData = {
            customerId: $('#customerId').text(),                    // 客户详情id
            uploadId: imageId,
        }
    } else if (type == '2') {
        // 添加、修改标签
        url = '/customer/updateCustomerImgAndTag';
        var imageId = $('#imageId').text();
        jsonData = {
            customerId: $('#customerId').text(),                    // 客户详情id
            tag: tagStr,                                               // 标签
        }
    } else {
        url = '/customer/updateCustomer';
        var customerNumber = $('#customerNumber').val();                        // 客户编号
        var originalCustomerId = $('#originalCustomerId').val();                // 原客户ID
        // var unifiedSocialCreditCode = $('#unifiedSocialCreditCode').val();      // 统一社会信用代码
        var companyType = $('#companyType').val();                              // 公司类型
        var industryx = $('#industryx').val();                                  // 行业分类
        var companySize = $('#companySize').val();                              // 公司规模
        var registeredCapital = $('#registeredCapital').val();                  // 注册资本
        var financialNumber = $('#financialNumber').val();                      // 财务人数
        var contactPerson = $('#contactPerson').val();                          // 联系人
        var contactPersonPhone = $('#contactPersonPhone').val();                // 联系方式
        var legalRepresentative = $('#legalRepresentative').val();              // 法定代表人
        var enterpriseExternalLandline = $('#enterpriseExternalLandline').val();    // 企业对外座机
        var companyWebsite = $('#companyWebsite').val();                        // 公司网址
        var registrationTime = $('#registrationTime').val();                    // 注册时间
        var fax = $('#fax').val();                                              // 传真
        var email = $('#email').val();                                          // 邮箱
        var detailedAddress = $('#address').val();                              // 公司地址
        var remark = $('#remark').val();                                        // 备注

        var provinceName = $('#editProvince option:selected').text();
        provinceName = provinceName == '请选择' ? '' : provinceName;
        var cityName = $('#editCity option:selected').text();
        cityName = cityName == '请选择' ? '' : cityName;
        var countyName = $('#editCounty option:selected').text();
        countyName = countyName == '请选择' ? '' : countyName;

        jsonData = {
            // customerName: customerName,                             // 客户名称
            // customerRating : customerRating,                        // 客户评分
            // tag: tag,                                               // 标签
            // customerType: customerType,                             // 客户类型
            // customerNumber: customerNumber,                         // 客户编号
            // originalCustomerId: originalCustomerId,                 // 原客户ID
            // unifiedSocialCreditCode: unifiedSocialCreditCode,       // 统一社会信用代码

            customerId: $('#customerId').text(),                    // 客户详情id
            companyType: companyType,                               // 公司类型
            industry: industryx,                                    // 行业
            companySize: companySize,                               // 公司规模
            registeredCapital: registeredCapital,                   // 注册资本
            financialNumber: financialNumber,                       // 财务人数
            contactPerson: contactPerson,                           // 联系人
            contactPersonPhone: contactPersonPhone,                 // 联系方式
            legalRepresentative: legalRepresentative,               // 法定代表人
            enterpriseExternalLandline: enterpriseExternalLandline, // 企业对外座机
            companyWebsite: companyWebsite,                         // 公司网址
            registrationTime: registrationTime,                     // 注册时间
            // fax: fax,                                               // 传真
            email: email,                                           // 邮箱
            detailedAddress: detailedAddress,                       // 公司地址
            remark: remark,                                         // 备注

            provinceName,   // 省份
            cityName,       // 市
            countyName      // 地区
            // uploadId: imageId,
        };
    }

    // console.log(jsonData);

    $.ajax({
        url,
        type: 'POST',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(jsonData),
        success: (function (data) {
            if (data.code == "000000") {
                $('#editInfoModal').modal('hide');
                if (type != '2') {
                    window.location.reload();
                }
                /*$("#infoCard").load(location.href + " #info", function () {
                    tagsShow(tag);
                    score('#showScore');
                    $("[data-toggle='tooltip']").tooltip();
                    $('#moreInfo').on('show.bs.collapse', function () {
                        $('#btnCollapse').html('点击收起 <i class="mdi mdi-chevron-double-up"></i>');
                    }).on('hide.bs.collapse', function () {
                        $('#btnCollapse').html('更多详情 <i class="mdi mdi-chevron-double-down"></i>');
                    });
                });*/
            } else {
                promptInfo("操作失败");
            }
        }),
        error: (function () {
            promptInfo("失败");
        })
    });
}

//显示公司简介信息
function companyInfo(num){
    $.ajax({
        url: '/customer/companyInfo',
        type: 'POST',
        dataType: "json",
        data: {
            customer_id: customerId,
        },
        success: (function (data) {
            if (data.code == "000000") {
                if (data.data) {
                    customerCompanyInfoId = data.data.customerCompanyInfoId;
                    if(num == 1) {
                        if(customerCompanyInfoId != null) {
                            $("#companyProfileE").val(data.data.companyProfile);  //公司简介
                            $("#companyIncomeE").val(data.data.companyIncome); //公司收益
                            $("#companyNumberE").val(data.data.companyNumber); //公司数量
                            $("#productServiceNumberE").val(data.data.productServiceNumber); //产品服务数量
                            $("#financingSituationE").val(data.data.financingSituation); //融资情况
                            $("#upstreamCompanyE").val(data.data.upstreamCompany || '暂无信息');//上游公司
                            $("#downstreamCompanyE").val(data.data.downstreamCompany);//下游公司
                        }
                    }else{
                        $("#companyProfile").html(data.data.companyProfile || '暂无信息');  //公司简介
                        $("#companyIncome").html(data.data.companyIncome || '暂无信息');//公司收益
                        $("#companyNumber").html(data.data.companyNumber || '暂无信息');//公司数量
                        $("#productServiceNumber").html(data.data.productServiceNumber || '暂无信息');//产品服务数量
                        $("#financingSituation").html(data.data.financingSituation || '暂无信息');//融资情况
                        $("#upstreamCompany").html(data.data.upstreamCompany || '暂无信息');//上游公司
                        $("#downstreamCompany").html(data.data.downstreamCompany || '暂无信息');//下游公司

                        var infoContent = $('#companyProfile').height();
                        if (infoContent > 84) {
                            var moreBtn = '<a href="#!" class="btn-more">展开</a>'
                            $('#companyProfile').addClass('more').append(moreBtn);
                            $('#companyProfile').on('click', '.btn-more', function () {
                                $('#companyProfile').toggleClass('show');
                            });
                        }

                    }
                }
            } else {
                 promptInfo("请求失败");
            }
        }),
        error: (function (res) {
             promptInfo("请求失败");
        })
    })
}

function saveCompany(){
    var companyProfile = $('#companyProfileE').val(); //公司简介
    var companyIncome = $('#companyIncomeE').val(); //公司收益
    var companyNumber = $('#companyNumberE').val(); //公司数量
    var productServiceNumber = $('#productServiceNumberE').val(); //产品服务数量
    var financingSituation = $('#financingSituationE').val(); //融资情况
    var upstreamCompany = $('#upstreamCompanyE').val(); //上游公司
    var downstreamCompany = $('#downstreamCompanyE').val(); //下游公司

    // 验证表单
    var bootstrapValidator = $("#editCompanyForm").data('bootstrapValidator');
    bootstrapValidator.validate();
    console.log(bootstrapValidator)
    // debugger;
    if (!bootstrapValidator.isValid()) {
        return;
    }


    //公司收益为空判断
    if(!companyIncome){
        promptInfo("公司收益不能为空！");
        return;
    }
    //公司数量
    var reg = /^\d{1,}$/; // 非负整数
    var pattern = new RegExp(reg);
    if(!companyNumber){
        promptInfo("公司数量不能为空！");
        return;
    }else{
        if(!pattern.test(companyNumber)) {
            promptInfo("公司数量必须是整数！");
            return;
        }
    }
    //产品服务数量为空判断
    if(!productServiceNumber){
        promptInfo("产品服务数量不能为空！");
        return;
    }else{
        if(!pattern.test(productServiceNumber)) {
            promptInfo("产品服务数量必须是整数！");
            return;
        }
    }
    //融资情况为空判断
    if(!financingSituation){
        promptInfo("融资情况不能为空！");
        return;
    }
    //上游公司为空判断
    if(!upstreamCompany){
        promptInfo("上游公司不能为空！");
        return;
    }
    //下游公司为空判断
    if(!downstreamCompany){
        promptInfo("下游公司不能为空！");
        return;
    }
    //公司简介为空判断
    if(!companyProfile){
        promptInfo("公司简介不能为空！");
        return;
    }

    var jsonData = {
        companyProfile : companyProfile, //公司简介
        companyIncome : companyIncome, //公司收益
        companyNumber : companyNumber, //公司数量
        productServiceNumber : productServiceNumber, //产品服务数量
        financingSituation : financingSituation, //融资情况
        upstreamCompany : upstreamCompany, //上游公司
        downstreamCompany : downstreamCompany, //下游公司
        customerId :  customerId,//客户详情id
        customerCompanyInfoId : customerCompanyInfoId
    };

    $.ajax({
        url: '/customerController/updateCustomerCompanyInfo',
        type: 'POST',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(jsonData),
        success: (function (data) {
            if (data.code == "000000") {
                window.location.reload();
            }else {
                promptInfo("操作失败");
            }
        }),
        error: (function () {
            promptInfo("失败");
        })
    });

}


//公司资料
function companyInformationc(seniorExecutive){
    //先销毁表格
    $custDetail.bootstrapTable('destroy');
    $custDetail.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customer/customerContactPersonList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'create_tm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'customerContactPersonId',
        idField: 'customerContactPersonId',
        pageSize: 5,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[5]",//可供选择的每页的行数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sortName: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                customer_id: customerId,
                isSeniorExecutive: seniorExecutive,
                abolishState :1
            };
            return temp;
        },
        rowStyle:function(row){
            if (row.abolishState==1){
                return {css:{"text-decoration":"none"}}
            }else{
                return {css:{"text-decoration":"line-through"}}
            }
        },
        columns: [
            {title: '主键', field: 'customerContactPersonId', visible: false},
            {title: '序号', field: 'index', align: 'left', width: '60', valign: 'middle', formatter: indexFormat},
            {title: '姓名',field: 'contactName',align: 'left', valign: 'middle',formatter: contactNameFormat},
            {title: '职务', field: 'contactPosition',  align: 'left', valign: 'middle',formatter: contactPositionFormat},
            {title: '在职情况', field: 'onTheJobSituation', align: 'left', valign: 'middle',formatter: poolTypeFormat},
            {title: '联系方式', field: 'contactInformation', align: 'left', valign: 'middle',
                formatter: function (value, row) {
                    var telBtn = '';
                    if (value) {
                        telBtn += '<button class="tel-button" onclick="callCenter(this);"><i class="mdi mdi-phone"></i></button>';
                    }
                    return transTelNumber(value) + telBtn;
                }
            },
            {title: '邮箱', field: 'mailBox',  align: 'left', valign: 'middle'},
            {title: '微信', field: 'wx',  align: 'left', valign: 'middle'},
            {title: '启用/废止联系人',field: 'abolishState',align: 'right', width: '120', formatter: abolishStateFormat},
            {title: '操作',field: 'operate',align: 'right', width: '90',formatter: genderOpt},

        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords //总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}
//联系人名录
function contactListc(seniorExecutive){
    var abolishStateType = $('#abolishState').is(':checked') ? 1 : 2;

    //先销毁表格
    $contactListDetail.bootstrapTable('destroy');
    $contactListDetail.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customer/customerContactPersonList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'create_tm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'customerContactPersonId',
        idField: 'customerContactPersonId',
        pageSize: 5,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[5, 10, 15, 20]",//可供选择的每页的行数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sortName: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                customer_id: customerId,
                isSeniorExecutive: seniorExecutive,
                abolishState: abolishStateType,    // 1-不查询废止的  2-查询废止的
            };
            return temp;
        },
        rowStyle:function(row){
            if (row.abolishState==1){
                return {css:{"text-decoration":"none"}}
            }else{
                return {css:{"text-decoration":"line-through"}}
            }
        },
        columns: [
            {title: '主键', field: 'customerContactPersonId', visible: false},
            {title: '序号', field: 'index', align: 'left', width: '60', valign: 'middle', formatter: indexFormat},
            {title: '姓名',field: 'contactName',align: 'left', valign: 'middle',formatter: contactNameFormat},
            {title: '职务', field: 'contactPosition',  align: 'left', valign: 'middle',formatter: contactPositionFormat},
            {title: '在职情况', field: 'onTheJobSituation', align: 'left', valign: 'middle',formatter: poolTypeFormat},
            {title: '联系方式', field: 'contactInformation', align: 'left', valign: 'middle',visible: true,
                formatter: function (value, row) {
                    var telBtn = '';
                    if (value) {
                        if (row.abolishState == '1') {
                            telBtn += '<button class="tel-button" onclick="callCenter(this);"><i class="mdi mdi-phone"></i></button>';
                        }
                        return transTelNumber(value) + telBtn;
                    } else {
                        return '-';
                    }
                }
            },
            {title: '联系人类型', field: 'contactState', align: 'left', valign: 'middle',formatter:contactStateFormat},
            {title: '邮箱', field: 'mailBox', align: 'left', valign: 'middle'},
            {title: '微信', field: 'wx', align: 'left', valign: 'middle'},
            {title: '跟进次数', field: 'followUpTimes', align: 'left', valign: 'middle'},
            {title: '是否废止联系人',field: 'abolishState',align: 'right',formatter: abolishStateFormat,},
            {title: '操作',field: 'operate',align: 'right', width: '80', formatter: genderOpt},
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

/**
 * 点击联系人姓名跳转联系人详情页面
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function contactNameFormat(value, row, index) {
    if(!value) {
        return '-';
    }
    return '<a href="JavaScript:void(0);"   onclick=\'contactDetail(\"'+row.contactName+'",\"'+row.contactInformation+'",\"'+customerId+'")\'>'+value+'</a>';
}

function  contactDetail(contactName,contactInformation,customerId, flag) {
    var contactId = "";

    //查询联系人id,进行跳转
    $.ajax({
        url: '/contact/getContactId',
        type: 'POST',
        dataType: "json",
        data: {
            customerId: customerId,
            contactInformation : contactInformation,
            contactName : contactName
        },
        async: !flag,
        success: (function (data) {
            if (data.code == "000000") {
                if (data.data.contactId != null) {
                    contactId = data.data.contactId;
                    if (!flag) {
                        parent.$(parent.document).data('multitabs').create({
                            iframe: true,
                            title: '联系人详情',
                            url: "/front/user/contactManager/contactDetail?contactId=" + contactId
                        }, true);
                    }
                }
            } else {
                promptInfo("操作失败");
            }
        }),
        error: (function () {
            promptInfo("失败");
        })
    });
    return contactId;
}

//产品明细
function productc(){
    //先销毁表格  会员产品
    $memberFinishOrderProductDetail.bootstrapTable('destroy');
    $memberFinishOrderProductDetail.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customerController/finishOrderProductList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'finishOrderProductId',
        idField: 'finishOrderProductId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[10]",//可供选择的每页的行数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sortName: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                customerId : customerId,
                productCategories :'1'  //产品分类 0:非会员;1:会员
            };
            return temp;
        },
        columns: [
            {title: '主键', field: 'finishOrderProductId', visible: false},
            {title: '序号', field: 'index', align: 'left', width: '60', valign: 'middle', formatter: indexFormat},
            {title: '产品名称', field: 'productName', align: 'left', valign: 'middle'},
            {title: '合同编号', field: 'contractNumber', align: 'left', valign: 'middle', formatter: contractNumberFormat},
            {title: '订单编号', field: 'orderNumber', align: 'left', valign: 'middle', formatter: orderNumberFormat},
            {title: '订单明细类型', field: 'orderDetailType', align: 'left', valign: 'middle',formatter: orderDetailTypeFormat},
            {title: '成交价', field: 'productFinalPrice', align: 'left', valign: 'middle'},
            {title: '操作', field: 'operate', align: 'right', width: '80', events: productEvents, formatter: memberFinishOrderProductOpt}

        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });


    //先销毁表格  非会员产品
    $nonMemberFinishOrderProductDetail.bootstrapTable('destroy');
    $nonMemberFinishOrderProductDetail.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customerController/finishOrderProductList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'finishOrderProductId',
        idField: 'finishOrderProductId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[10]",//可供选择的每页的行数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sortName: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                customerId : customerId,
                productCategories :'0'  //产品分类 0:非会员;1:会员
            };
            return temp;
        },
        columns: [
            {title: '主键', field: 'finishOrderProductId', visible: false},
            {title: '序号', field: 'index', align: 'left', width: '60', valign: 'middle', formatter: indexFormat},
            {title: '产品名称', field: 'productName', align: 'left', valign: 'middle'},
            {title: '合同编号', field: 'contractNumber', align: 'left', valign: 'middle', formatter: contractNumberFormat},
            {title: '订单编号', field: 'orderNumber', align: 'left', valign: 'middle', formatter: orderNumberFormat},
            {title: '订单明细类型', field: 'orderDetailType', align: 'left', valign: 'middle',formatter: orderDetailTypeFormat},
            {title: '成交价', field: 'productFinalPrice', align: 'left', valign: 'middle'},
            {title: '操作', field: 'operate', align: 'right', width: '80',events: noMemberProductEvents, formatter: noMemberFinishOrderProductOpt}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });



    //兑换产品
    redeemProductTable()
}
//兑换产品列表
function redeemProductTable(){
    $redeemProductsTableDetail.bootstrapTable('destroy');
    $redeemProductsTableDetail.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        // url: '/customerController/finishOrderProductList',//请求地址
        url: '/customerController/selectFinishOrderProductList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'finishOrderProductId',
        idField: 'finishOrderProductId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[10]",//可供选择的每页的行数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sortName: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                customerId : customerId,
                // productCategories :'非会员'  //产品分类 0:非会员;1:会员
            };
            return temp;
        },
        columns: [
            {title: '主键', field: 'finishOrderProductId', visible: false},
            {title: '序号', field: 'index', align: 'left', width: '60', valign: 'middle', formatter: indexFormat},
            {title: '合同编号', field: 'contractNumber', align: 'left', valign: 'middle', formatter: contractNumberFormat},
            {title: '订单编号', field: 'orderNumber', align: 'left', valign: 'middle', formatter: orderNumberFormat},
            {title: '产品名称', field: 'productName', align: 'left', valign: 'middle'},
            {title: '订单明细类型', field: 'orderDetailType', align: 'left', valign: 'middle',formatter: orderDetailTypeFormat},
            // {title: '成交价', field: 'productFinalPrice', align: 'left', valign: 'middle'},
            {title: '操作', field: 'operate', align: 'right', width: '80',events: redeemProductEvents,formatter: redeemProductsTableOpt}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}
/**
 * 会员产品操作列内容
 */
function memberFinishOrderProductOpt(value, row, index) {
    var html =  '<button type="button" id="productExchange" class="btn btn-default"><i class="mdi mdi-cards-outline"></i>兑换</button>';
        html += '<button type="button" id="productDetail" class="btn btn-default"><i class="mdi mdi-note-outline"></i>详细信息</button>';
        html += '<button type="button" id="recordConsumption" class="btn btn-default"><i class="mdi mdi-format-list-bulleted"></i>消费记录</button>';

    return html;
}
/*兑换产品操作列内容*/
function redeemProductsTableOpt(value, row, index) {
    if(row.exchangeMethod==1||row.exchangeMethod==2){
        var html =  '<button type="button" id="redeemProductDetail" class="btn btn-default"><i class="mdi mdi-note-outline"></i>详细信息</button>';
    }else{
        var html = '';
    }
    // html += '<button type="button" id="renew" class="btn btn-default"><i class="mdi mdi-cart-plus"></i>续费</button>';
    /*html += '<button type="button" id="recordConsumption" class="btn btn-default"><i class="mdi mdi-format-list-bulleted"></i>消费记录</button>';*/

    return html;
}


/**
 * 非会员产品操作列内容
 */
function noMemberFinishOrderProductOpt(value, row, index) {
    var html =  '<button type="button" id="noMemberProductDetail" class="btn btn-default"><i class="mdi mdi-note-outline"></i>详细信息</button>';
    html += '<button type="button" id="noMemberRecordConsumption" class="btn btn-default"><i class="mdi mdi-format-list-bulleted"></i>消费记录</button>';
    return html;
}


var productEvents = {
     'click #productExchange': function (e, value, row, index) {
       productOrderId = row.productOrderId;
       finishOrderProductNum = row.finishOrderProductNum;
       finishOrderProductId = row.finishOrderProductId;
       changeProductCode = row.productCode;
       finishProductName = row.productName;
       productId = row.productId;
       openProductExhange()
    },
    'click #productDetail': function (e, value, row, index) {
        if(row.exchangeStatus == 1) {
            $.alert("该产品已补款升级");
            return;
        }
        getDetails = row
        bs = 0
        getMemberProduct(row, 0);
    },
    'click #renew': function (e, value, row, index) {
        renewContractNumber = row.contractNumber;
        $('#renewDetail').modal('show');
        renewTableInit();
        renewClear();
    },
    'click #recordConsumption': function (e, value, row, index) {
        recordConsumption(row, 0);
    }
};

var noMemberProductEvents = {
    'click #noMemberProductDetail': function (e, value, row, index) {
        if(row.exchangeStatus == 1) {
            $.alert("该产品已补款升级");
            return;
        }
        getDetails = row
        bs = 1
        getMemberProduct(row,1);
    },
    'click #noMemberRecordConsumption': function (e, value, row, index) {
        recordConsumption(row,1);
    }
}
var redeemProductEvents = {
    'click #redeemProductDetail': function (e, value, row, index) {
        if(row.exchangeStatus == 1) {
            $.alert("该产品已补款升级");
            return;
        }
        getDetails = row
        bs = 1
        getMemberProduct(row,1);
    }
}

/*function renewClear(){
    $('#surcharge').val('');
    $('#orderSurchargeRemark').val('');
    $('#customerContractList').val('');
    $('#customerContractList').selectpicker('refresh');
    $('#contractDate').val('');
    $('#defray').val('');
    $('#defray').selectpicker('refresh');
    $('#contractImg').val('');
    $('#examineImgBox').val('');
    $('#contractReviewNotes').val('')
}*/

function  isHouxinxue() {
    $.ajax({
        url: '/order/isHouxinxue',
        type: 'get',
        dataType:"json",
        // contentType:false,
        cache: false,
        async: false,
        success:(function(data) {
            if(data.code == "000000") {
                isHxx = data.data
            }
        }),
        error:(function() {

        })
    });
}

/**
 * 消费记录
 */
function recordConsumption(data,bs) {
    var ifHou = 0;
    isHouxinxue();
    $.ajax({
        url: '/customerController/selectCustomerProductDetail',
        type: 'POST',
        dataType: "json",
        data: {
            customerId,                                              // 客户id
            memberProductId: data.productId,                         // 会员产品id
            finishOrderProductNum: data.finishOrderProductNum,        // 产品号
            orderId:data.productOrderId == null?'0':data.productOrderId , // 订单id
            memberProductCode:data.productCode == null?'0': data.productCode,// 产品编码
            bs:bs  //  0 会员 1非会员
        },
        success: (function (data) {
            if (data.code == "000000") {
                // console.log(data.data.list);
                // 会员卡功能处理
                if (data.data.customerProductDetailMemberCard == null) {
                    // 无会员卡
                     promptInfo('您还没有申请会员卡,请先申请!');
                } else {
                    // 有会员卡
                    var cardData = data.data.customerProductDetailMemberCard[0];
                    console.log('有会员卡');
                    if(isHxx) {
                        ifHou = 1;
                    }
                    var url = 'https://nsrjlb.com/m/m_xuanchan/cardRecording.php?name=' + cardData.memberCardNumber +'&ifHou=' + ifHou;
                    $('#expensesRecordIframe').attr('src', url)
                    $('#expensesRecordIframe').css('width', '100%')
                    $('#expensesRecordIframe').css('height', '550px')
                    $('#expensesRecord').modal('show')
                }
            }else {
                 promptInfo('错误代码：' + data.code);
            }
        }),
        error: (function () {
             promptInfo("数据请求失败");
        })
    })
}

$(function () {
    $(document).on("click", "#applyCard", function(){
        $(this).html('处理中，请稍后...').prop('disabled', true);
        var cardData = {
            memberProductCode: getDetails.productCode,                     // 产品编码
            finishOrderProductNum: getDetails.finishOrderProductNum,       // 产品号
            productPrice: getDetails.productFinalPrice,                    // 产品的金额
            customerId,                                                 // 客户id
            contractId: getDetails.contractId,                             // 合同id
            contractNumber: getDetails.contractNumber,                     // 合同编号
            productOrderId: getDetails.productOrderId,                     // 订单id
            orderNumber: getDetails.orderNumber,                           // 订单编号
            productQuantity:getDetails.productQuantity,
            productFinalPrice:getDetails.productFinalPrice,
        }
        applyCard(cardData);
    });
})

/**
 * 功能：获取会员产品详细信息以及相关产品下的相关内容
 * */
function getMemberProduct(data,bs) {
    var rowData = data;
    $.ajax({
        url: '/customerController/selectCustomerProductDetail',
        type: 'POST',
        dataType: "json",
        data: {
            customerId,                                              // 客户id
            memberProductId: rowData.productId,                         // 会员产品id
            finishOrderProductNum: rowData.finishOrderProductNum,        // 产品号
            orderId:rowData.productOrderId , // 订单id
            memberProductCode:rowData.productCode ,// 产品编码
            bs:bs  //  0 会员 1非会员
        },
        success: (function (data) {
            if (data.code == "000000") {
                // console.log(data.data.list);
                $('#productInfo').modal('show');
                // 会员卡功能处理
                if (data.data.customerProductDetailMemberCard == null) {
                    if(data.data.customerProductDetailMemberCard == null && data.data.taxList == null && data.data.codeList == null && data.data.yunList == null && data.data.rechargeCodeList == null && data.data.couponsList == null){
                        var html  = '<div class="card-info no-card clearfix" id="cardInfo">\n' +
                            '                            <div class="code" id="cardCode"></div>\n' +
                            '                            <div class="pull-left">\n' +
                            '                                <h5>卡号：<span id="cardNum"></span></h5>\n' +
                            '                                <p>密码：<span id="cardPassword">*********</span></p>\n' +
                            '                                <p>有效期：<span id="cardDays">****.**.** 至 ****.**.**</span></p>\n' +
                            '                            </div>\n' +
                            '                            <div class="btn-box" id="carInfoBox">\n' +
                            '                                <p><span>暂无申请会员卡&兑换码，请点击按钮申请会员卡&兑换码</span></p>\n' +
                            '                                <button type="button" class="btn btn-primary" id="applyCard">申请会员卡&兑换码</button>\n' +
                            '                            </div>\n' +
                            '                        </div>'
                        $('#cardInfolist').html(html);
                        // $('#carInfoBox').html(' <p><span>暂无会员卡，请点击按钮申请会员卡</span></p>\n' +
                        //     '                            <button type="button" class="btn btn-primary" id="applyCard">申请会员卡</button>')
                    }else{
                        // 无会员卡
                        var html  = '<div class="card-info no-card clearfix" id="cardInfo">\n' +
                            '                            <div class="code" id="cardCode"><i class="mdi mdi-qrcode"></i></div>\n' +
                            '                            <div class="pull-left">\n' +
                            '                                <h5>卡号：<span id="cardNum">8888 8888 8888 8888</span></h5>\n' +
                            '                                <p>密码：<span id="cardPassword">1234567890</span></p>\n' +
                            '                                <p>有效期：<span id="cardDays">2021.08.08 至 2022.08.08</span></p>\n' +
                            '                            </div>\n' +
                            '                            <div class="btn-box" id="carInfoBox">\n' +
                            '\n' +
                            '                            </div>\n' +
                            '                        </div>';
                        $('#cardInfolist').html(html)
                    }
                } else {
                    // 有会员卡
                    var html = '';
                    $.each(data.data.customerProductDetailMemberCard,function(index,item){
                        html+='<div class="card-info clearfix" id="cardInfo">\n' +
                            '                        <div class="code" id="cardCode"><img src="' + item.qrCode + '" alt=""></div>\n' +
                            '                        <div class="pull-left">\n' +
                            '                            <h5>卡号：<span id="cardNum">'+item.memberCardNumber+'</span></h5>\n' +
                            '                            <p>密码：<span id="cardPassword">'+item.memberCardPassword+'</span></p>\n' +
                            '                            <p>有效期：<span id="cardDays">'+new Date(item.startTm).Format("yyyy.MM.dd")+'至 '+new Date(item.endTm).Format("yyyy.MM.dd")+'</span></p>\n' +
                            '                        </div>\n' +
                            '                        <div class="btn-box" id="carInfoBox">\n' +
                            '                        </div>\n' +
                            '                    </div>'
                    })
                    $('#cardInfolist').html(html)
                }

                //税法直通车
                if(data.data.taxList == null){
                    var html = '<div class="card-info no-card clearfix" id="taxLawCardInfo" style="height: 100px">\n' +
                        '                            <div class="pull-left">\n' +
                        '                                <h5>卡号：<span id="taxLawCardNum">8888 8888 8888 8888</span></h5>\n' +
                        '                                <p>密码：<span id="taxLawCardPassword">1234567890</span></p>\n' +
                        '                            </div>\n' +
                        '                            <div class="btn-box">\n' +
                        '                            </div>\n' +
                        '                        </div>'
                    $('#taxLawCardInfoList').html(html)
                }else{
                    var html = '';
                    $.each(data.data.taxList,function(index,item){
                        html+='<div class="card-info clearfix" id="taxLawCardInfo" style="height: 100px">\n' +
                            '                        <div class="pull-left">\n' +
                            '                            <h5>卡号：<span id="taxLawCardNum">'+item.memberCardNumber+'</span></h5>\n' +
                            '                            <p>密码：<span id="taxLawCardPassword">'+item.memberCardPassword+'</span></p>\n' +
                            '                        </div>\n' +
                            '                        <div class="btn-box" id="carInfoBox">\n' +
                            '                        </div>\n' +
                            '                    </div>'
                    })
                    $('#taxLawCardInfoList').html(html)
                }

                // 兑换码
                if(data.data.codeList == null){
                    var html = ' <div class="card-info no-card clearfix" id="exchangeCardInfo"  style="height: 100px">\n' +
                        '                        <div class="pull-left">\n' +
                        '                            <h5>卡号：<span id="exchangeCardNum">8888 8888 8888 8888</span></h5>\n' +
                        '                            <p>密码：<span id="exchangeCardPassword">1234567890</span></p>\n' +
                        '                        </div>\n' +
                        '                        <div class="btn-box">\n' +
                        '                        </div>\n' +
                        '                    </div>'
                    $('#exchangeCardInfoBox').html(html)
                }else{
                    var html = '';
                    $.each(data.data.codeList,function(index,item){
                        html += ' <div class="card-info clearfix" id="exchangeCardInfo"  style="height: 100px">\n' +
                            '                        <div class="pull-left">\n' +
                            '                            <h5>卡号：<span id="exchangeCardNum">'+item.exchangeCodeCrmId+'</span></h5>\n' +
                            '                            <p>密码：<span id="exchangeCardPassword">'+item.exchangeCodePassword+'</span></p>\n' +
                            '                        </div>\n' +
                            '                        <div class="btn-box">\n' +
                            '                        </div>\n' +
                            '                    </div>'
                    })
                    $('#exchangeCardInfoBox').html(html)
                }
                //云顾问卡
                if(data.data.yunList == null){
                    var html = ' <div class="card-info no-card clearfix" id="cloudAdvisorCardInfo"  style="height: 100px">\n' +
                        '                        <div class="pull-left">\n' +
                        '                            <h5>卡号：<span id="cloudAdvisorCardNum">8888 8888 8888 8888</span></h5>\n' +
                        '                            <p>密码：<span id="cloudAdvisorCardPassword">1234567890</span></p>\n' +
                        '                        </div>\n' +
                        '                        <div class="btn-box">\n' +
                        '                        </div>\n' +
                        '                    </div>'
                    $('#cloudAdvisorCardInfoBox').html(html)
                }else{
                    var html = '';
                    $.each(data.data.yunList,function(index,item){
                        html += ' <div class="card-info clearfix" id="cloudAdvisorCardInfo"  style="height: 100px">\n' +
                            '                        <div class="pull-left">\n' +
                            '                            <h5>卡号：<span id="cloudAdvisorCardNum">'+item.yunCard+'</span></h5>\n' +
                            '                            <p>密码：<span id="cloudAdvisorCardPassword">'+item.yunPassword+'</span></p>\n' +
                            '                        </div>\n' +
                            '                        <div class="btn-box">\n' +
                            '                        </div>\n' +
                            '                    </div>'
                    })
                    $('#cloudAdvisorCardInfoBox').html(html)
                }
                //充值卡
                if(data.data.rechargeCodeList == null){
                    var html = ' <div class="card-info no-card clearfix" id="rechargeCardInfo"  style="height: 100px">\n' +
                        '                        <div class="pull-left">\n' +
                        '                            <h5>卡号：<span id="rechargeCardNum">8888 8888 8888 8888</span></h5>\n' +
                        '                            <p>密码：<span id="rechargeCardPassword">1234567890</span></p>\n' +
                        '                        </div>\n' +
                        '                        <div class="btn-box">\n' +
                        '                        </div>\n' +
                        '                    </div>'
                    $('#rechargeCardInfoBox').html(html)
                }else{
                    var html = '';
                    $.each(data.data.rechargeCodeList,function(index,item){
                        html += ' <div class="card-info clearfix" id="rechargeCardInfo"  style="height: 100px">\n' +
                            '                        <div class="pull-left">\n' +
                            '                            <h5>卡号：<span id="rechargeCardNum">'+item.rechargeCodeCrmId+'</span></h5>\n' +
                            '                            <p>密码：<span id="rechargeCardPassword">'+item.rechargeCodePassword+'</span></p>\n' +
                            '                        </div>\n' +
                            '                        <div class="btn-box">\n' +
                            '                        </div>\n' +
                            '                    </div>'
                    })
                    $('#rechargeCardInfoBox').html(html)
                }
                //优惠券
                if(data.data.couponsList == null){
                    var html = ' <div class="card-info no-card clearfix" id="couponsCardInfo"  style="height: 100px">\n' +
                        '                        <div class="pull-left">\n' +
                        '                            <h5>优惠劵码：<span id="couponsCardNum">8888 8888 8888 8888</span></h5>\n' +
                        '                            <p>优惠券名称：<span id="couponsCardPassword">1234567890</span></p>\n' +
                        '                        </div>\n' +
                        '                        <div class="btn-box">\n' +
                        '                        </div>\n' +
                        '                    </div>'
                    $('#couponsCardInfoBox').html(html)
                }else{
                    var html = ''  ;
                    $.each(data.data.couponsList,function(index,item){
                        html += ' <div class="card-info clearfix" id="couponsCardInfo"  style="height: 100px">\n' +
                            '                        <div class="pull-left">\n' +
                            '                            <h5>优惠劵码：<span id="couponsCardNum">'+item.couponCodeCrmId+'</span></h5>\n' +
                            '                            <p>优惠券名称：<span id="couponsCardPassword">'+item.couponName+'</span></p>\n' +
                            '                        </div>\n' +
                            '                        <div class="btn-box">\n' +
                            '                        </div>\n' +
                            '                    </div>'
                    })
                    $('#couponsCardInfoBox').html(html)
                }

                // $('#applyCard').off("click").on('click', function () {
                //     var cardData = {
                //         memberProductCode: rowData.productCode,                     // 产品编码
                //         finishOrderProductNum: rowData.finishOrderProductNum,       // 产品号
                //         productPrice: rowData.productFinalPrice,                    // 产品的金额
                //         customerId,                                                 // 客户id
                //         contractId: rowData.contractId,                             // 合同id
                //         contractNumber: rowData.contractNumber,                     // 合同编号
                //         productOrderId: rowData.productOrderId,                     // 订单id
                //         orderNumber: rowData.orderNumber,                           // 订单编号
                //         productQuantity:rowData.productQuantity,
                //         productFinalPrice:rowData.productFinalPrice,
                //     }
                //     applyCard(cardData);
                // });
                if(bs == 0){
                    $('.isShow').css('display','block')
                    // table 数据加载
                    var onlineCourseArr = [];           // 线上课程
                    var offlineCourseArr = [];          // 线下课程
                    var valueAddedServicesArr = [];     // 增值服务
                    if (data.data.list !== null && data.data.list[0] != null) {
                        for (var i = 0; i < data.data.list.length; i++) {
                            switch (data.data.list[i].serviceType) {
                                case '1':   // 线上课程
                                    onlineCourseArr.push(data.data.list[i]);
                                    break;
                                case '2':   // 线下课程
                                    offlineCourseArr.push(data.data.list[i]);
                                    break;
                                case '3':   // 增值服务
                                    valueAddedServicesArr.push(data.data.list[i]);
                                    break;
                            }
                        }
                    }
                    // console.log(onlineCourseArr, offlineCourseArr, valueAddedServicesArr);
                    $('#onlineCourse').bootstrapTable('destroy');
                    $('#onlineCourse').bootstrapTable({
                        classes: 'table table-bordered table-hover table-striped',
                        striped: true,                  // 是否显示行间隔色
                        sortable: true,                 // 是否启用排序
                        sortOrder: "desc",              // 排序方式
                        sortName: '',                   // 排序字段
                        pagination: true,               // 是否显示分页
                        undefinedText: '-',             // cell没有值时显示
                        uniqueId: 'formId',
                        idField: 'formId',
                        pageSize: 5,                    // 每页的记录行数
                        pageNumber: 1,                  // 初始化加载第1页，默认第1页
                        detailView: true,
                        detailViewByClick: true,
                        detailViewIcon: true,
                        detailFormatter:function(index,row){
                            var data = getDetailDate(row.courseNum);
                            if (data.length == 1 && data[0] == null) {
                                return;
                            }
                            var html = '';
                            for (var i = 0; i < data.length; i++) {
                                html += '<span class="label label-info">' + data[i].serviceClassification + '</span>';
                            }
                            return html;
                        },
                        detailFilter: function (index, row) {
                            var data = getDetailDate(row.courseNum);
                            if (data[0] == null) {
                                return false;
                            } else {
                                expandRow('onlineCourse', index);
                                return true;
                            }
                        },
                        data: onlineCourseArr,
                        columns: [
                            {title: '主键', field: 'formId', visible: false},
                            {title: '联系人id', field: 'contactPersonId', visible: false},
                            {title: '序号', field: 'index', align: 'left', valign: 'middle', width: '54', formatter: indexFormat},
                            {title: '课程类型', field: 'courseName',  align: 'left', valign: 'middle'},
                            {title: '课程小类', field: 'subName', align: 'left', valign: 'middle'},
                            {title: '服务次数', field: 'serviceCount', align: 'left', valign: 'middle'},
                        ],
                    });
                    $('#offlineCourse').bootstrapTable('destroy');
                    $('#offlineCourse').bootstrapTable({
                        classes: 'table table-bordered table-hover table-striped',
                        striped: true,                  // 是否显示行间隔色
                        sortable: true,                 // 是否启用排序
                        sortOrder: "desc",              // 排序方式
                        sortName: '',                   // 排序字段
                        pagination: true,               // 是否显示分页
                        undefinedText: '-',             // cell没有值时显示
                        uniqueId: 'formId',
                        idField: 'formId',
                        pageSize: 5,                    // 每页的记录行数
                        pageNumber: 1,                  // 初始化加载第1页，默认第1页
                        detailView: true,
                        detailViewByClick: true,
                        detailViewIcon: true,
                        detailFormatter:function(index,row){
                            var data = getDetailDate(row.courseNum);
                            if (data.length == 1 && data[0] == null) {
                                return;
                            }
                            var html = '';
                            for (var i = 0; i < data.length; i++) {
                                html += '<span class="label label-info">' + data[i].serviceClassification + '</span>';
                            }
                            return html;
                        },
                        detailFilter: function (index, row) {
                            var data = getDetailDate(row.courseNum);
                            if (data[0] == null) {
                                return false;
                            } else {
                                expandRow('offlineCourse', index);
                                return true;
                            }
                        },
                        data: offlineCourseArr,
                        columns: [
                            {title: '主键', field: 'formId', visible: false},
                            {title: '联系人id', field: 'contactPersonId', visible: false},
                            {title: '序号', field: 'index', align: 'left', valign: 'middle', width: '54', formatter: indexFormat},
                            {title: '课程类型', field: 'courseName',  align: 'left', valign: 'middle'},
                            {title: '课程小类', field: 'subName', align: 'left', valign: 'middle'},
                            {title: '服务次数', field: 'serviceCount', align: 'left', valign: 'middle'},
                        ],
                    });
                    $('#valueAddedServices').bootstrapTable('destroy');
                    $('#valueAddedServices').bootstrapTable({
                        classes: 'table table-bordered table-hover table-striped',
                        striped: true,                  // 是否显示行间隔色
                        sortable: true,                 // 是否启用排序
                        sortOrder: "desc",              // 排序方式
                        sortName: '',                   // 排序字段
                        pagination: true,               // 是否显示分页
                        undefinedText: '-',             // cell没有值时显示
                        uniqueId: 'formId',
                        idField: 'formId',
                        pageSize: 5,                    // 每页的记录行数
                        pageNumber: 1,                  // 初始化加载第1页，默认第1页
                        detailView: true,
                        detailViewByClick: true,
                        detailViewIcon: true,
                        detailFormatter:function(index, row){
                            var data = getDetailDate(row.courseNum);
                            if (data.length == 1 && data[0] == null) {
                                return;
                            }
                            var html = '';
                            for (var i = 0; i < data.length; i++) {
                                html += '<span class="label label-info">' + data[i].serviceClassification + '</span>';
                            }
                            return html;
                        },
                        detailFilter: function (index, row) {
                            var data = getDetailDate(row.courseNum);
                            if (data[0] == null) {
                                return false;
                            } else {
                                expandRow('valueAddedServices', index);
                                return true;
                            }
                        },
                        data: valueAddedServicesArr,
                        columns: [
                            {title: '主键', field: 'formId', visible: false},
                            {title: '联系人id', field: 'contactPersonId', visible: false},
                            {title: '序号', field: 'index', align: 'left', valign: 'middle', width: '54', formatter: indexFormat},
                            {title: '课程类型', field: 'courseName',  align: 'left', valign: 'middle'},
                            {title: '课程小类', field: 'subName', align: 'left', valign: 'middle'},
                            {title: '服务次数', field: 'serviceCount', align: 'left', valign: 'middle'},
                        ],
                    });
                }else{
                    $('.isShow').css('display','none')
                }

            } else {
                 promptInfo('错误代码：' + data.code);
            }
        }),
        error: (function () {
             promptInfo("数据请求失败");
        })
    })
}
function expandRow(id, index) {
    setTimeout(function () {
        $('#' + id).bootstrapTable('expandRow', index);
    }, 100);
}
function getDetailDate(courseNum) {
    var detailData;
    $.ajax({
        url: '/customerController/selectCustomerProduct',
        type: 'POST',
        dataType: "json",
        async: false,
        data: {
            customerId,     // 客户id
            courseNum,      // 课程标号
        },
        success: (function (data) {
            if (data.code == "000000") {
                detailData = data.data;
            }
        })
    })
    return detailData;
}
function applyCard(data) {
    var newData = {
        // memberProductCode: data.memberProductCode,              // 产品编码
        // finishOrderProductNum: data.finishOrderProductNum,      // 产品号
        // productPrice: data.productPrice,                        // 产品的金额
        // customerId: data.customerId,                            // 客户id
        // contractId: data.contractId,                            // 合同id
        // contractNumber: data.contractNumber,                    // 合同编号keu
        // productOrderId: data.productOrderId,                    // 订单id
        // orderNumber: data.orderNumber,                          // 订单编号

        "orderId":data.productOrderId, //订单id
        "productCode":data.memberProductCode,  //产品编码
        // productCode:'asdasdasd' ,
        "productQuantity":1, //数量
        "productFinalPrice":data.productFinalPrice ,  //成交价
        "finishOrderProductNum":data.finishOrderProductNum,
    }
    $.ajax({
        url: '/customerController/hairpin',
        type: 'POST',
        dataType: "json",
        contentType: "application/x-www-form-urlencoded",
        data: newData,
        success: (function (data) {
            if (data.code == "000000") {
                if(typeof(data.data) == 'string'){
                    var result = JSON.parse(data.data);
                    if(result.code == 1){
                        getMemberProduct(getDetails,bs)
                    } else {
                        $.alert({
                            title: '提示',
                            content:result.msg,
                            buttons: {
                                confirm: {
                                    text: '确认',
                                    btnClass: 'btn-primary',
                                    action: function () {
                                        $('#applyCard').html('申请会员卡&兑换码').prop('disabled', true);
                                    }
                                },
                            }
                        })
                    }

                }
                // var cardData = data.data;
                // $('#cardInfo').removeClass('no-card');
                // $('#cardCode').html('<img src="' + cardData.qrCode + '" alt="code">');
                // $('#cardNum').html(cardData.memberCardNumber);
                // $('#cardPassword').html(cardData.memberCardPassword);
                // var cardStartTime = new Date(cardData.startTm).Format("yyyy.MM.dd");
                // var cardEndTime = new Date(cardData.endTm).Format("yyyy.MM.dd");
                // $('#cardDays').html(cardStartTime + ' 至 ' + cardEndTime);

            } else if (data.code == "MC001") {
                 promptInfo('会员卡没有了，请联系管理员');
            } else {
                 promptInfo('错误代码：' + data.code);
            }
        }),
        error: (function () {
             promptInfo("数据请求失败");
        })
    })
}

/**
 * 订单明细类型--1:产品类型;2:活动类型;3:赠品活动类型
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function orderDetailTypeFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (1 == value) {
        return "<span class='label label-success-light'>产品类型</span>";
    } else if (2 == value) {
        return "<span class='label label-info-light'>活动类型</span>";
    } else if (3 == value) {
        return "<span class='label label-info-light'>赠品活动类型</span>";
    } else if (4 == value) {
        return "<span class='label label-info-light'>兑换类型</span>";
    }
}

/**
 * 点击合同编号跳转到合同详情
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function contractNumberFormat(value, row, index) {
    if(value == null) {
        value = '';
    }
    return '<a href="JavaScript:void(0);"   onclick=\'contractNumberDetail(\"'+row.contractId+'")\'>'+value+'</a>';
}

function  contractNumberDetail(contractId) {
    if(contractId == null || contractId == '') {
        $.alert("合同信息有误!");
        return;
    }
    parent.$(parent.document).data('multitabs').create({
        iframe : true,
        title : '合同详情',
        url : "/front/contractManager/contractDetail?contractId=" + contractId
    }, true);
}

/**
 * 点击订单编号跳转到订单详情
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function orderNumberFormat(value, row, index) {
    if(value == null) {
        value = '';
    }
    return '<a href="JavaScript:void(0);" onclick="orderNumberDetail(\''+row.productOrderId+ '\',\'' + row.contractId + '\')">'+value+'</a>';
}

function  orderNumberDetail(productOrderId,contractId) {
    if(productOrderId == null || productOrderId == '') {
        $.alert("订单信息有误!");
        return;
    }
    parent.$(parent.document).data('multitabs').create({
        iframe : true,
        title : '订单详情',
        url : "/front/orderManager/orderDetail?productOrderId=" + productOrderId+"&contractId="+ contractId
    }, true);
}

//合同
function contractc(){
    //先销毁表格
    $contractDetail.bootstrapTable('destroy');
    $contractDetail.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customerController/contractList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'contractId',
        idField: 'contractId',
        pageSize: 5,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: ['5', '10', '50'],//可供选择的每页的行数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sortName: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                customerId : customerId
            };
            return temp;
        },
        columns: [
            {title: '主键', field: 'contractId', visible: false},
            {title: '序号', field: 'index', align: 'left', width: '60', valign: 'middle', formatter: indexFormat},
            {title: '合同编号',field: 'contractNumber',align: 'left', valign: 'middle',formatter: contractNumberFormat},
            {title: '合同状态', field: 'contractStatus',  align: 'left', valign: 'middle',formatter: contractStatusFormat},
            {title: '合同类型', field: 'contractType', align: 'left', valign: 'middle',formatter: contractTypeFormat},
            {title: '合同开始日期', field: 'contractStartDate', align: 'left', valign: 'middle',formatter:dateFormat},
            {title: '合同结束日期', field: 'contractEndDate', align: 'left', valign: 'middle',formatter:dateFormat},
            // {title: '合同续费', field: 'contractRenewal', align: 'left', valign: 'middle',formatter:contractRenewalFormat},
            // {title: '是否特批', field: 'specialApprovalStatus', align: 'left', valign: 'middle',formatter:specialApprovalStatusFormat},
            {title: '回款状态', field: 'paymentStatus', align: 'left', valign: 'middle',formatter:paymentStatusFormat},
            // {title: '合同审批状态',field: 'contractApprovalStatus',align: 'center',formatter:contractApprovalStatusFormat},
            // {title: '合同审核状态',field: 'contractReviewStatus',align: 'center',formatter:contractReviewStatusFormat}
            {title: '操作',field: 'operate',align: 'right',events: contractOperateEvents,formatter: contractGenderOpt}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

/**
 * 合同状态:1-未生效；2-生效中；3-已结束；4-已作废；5-意外终止；6-挂起
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function contractStatusFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (1 == value) {
        return "<span class='label label-success-light'>未生效</span>";
    } else if (2 == value) {
        return "<span class='label label-info-light'>生效中</span>";
    } else if (3 == value) {
        return "<span class='label label-info-light'>已结束</span>";
    } else if (4 == value) {
        return "<span class='label label-info-light'>已作废</span>";
    } else if (5 == value) {
        return "<span class='label label-info-light'>意外终止</span>";
    } else if (6 == value) {
        return "<span class='label label-info-light'>挂起</span>";
    }
}

/**
 * 合同类型--1:非会员合同;2:会员新单合同;3:活动合同;4:会员续费合同
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function contractTypeFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (1 == value) {
        return "<span class='label label-success-light'>非会员合同</span>";
    } else if (2 == value) {
        return "<span class='label label-success-light'>会员新单合同</span>";
    } else if (3 == value) {
        return "<span class='label label-info-light'>活动合同</span>";
    } else if (4 == value) {
        return "<span class='label label-info-light'>会员续费合同</span>";
    }
}

/**
 * 合同续费:1-正常合同；2-提前续费；3-延期续费
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function contractRenewalFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (1 == value) {
        return "<span class='label label-success-light'>正常合同</span>";
    } else if (2 == value) {
        return "<span class='label label-info-light'>提前续费</span>";
    } else if (3 == value) {
        return "<span class='label label-info-light'>延期续费</span>";
    }
}

/**
 * 是否特批：1-特批；0-不是特批
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function specialApprovalStatusFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (0 == value) {
        return "<span class='label label-success-light'>不特批</span>";
    } else if (1 == value) {
        return "<span class='label label-info-light'>特批</span>";
    }
}

/**
 * 回款状态：0-未回款；1-已回款；3-部分回款
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function paymentStatusFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (0 == value) {
        return "<span class='label label-success-light'>未回款</span>";
    } else if (1 == value) {
        return "<span class='label label-info-light'>已回款</span>";
    } else if (3 == value) {
        return "<span class='label label-info-light'>部分回款</span>";
    }
}

/**
 * 合同审批状态：1-审批；0-未审批
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function contractApprovalStatusFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (0 == value) {
        return "<span class='label label-success-light'>未审批</span>";
    } else if (1 == value) {
        return "<span class='label label-info-light'>审批</span>";
    }
}

/**
 * 合同审核状态：0-未审核；1-审核中；2-审核通过；3-审核失败
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function contractReviewStatusFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (0 == value) {
        return "<span class='label label-info-light'>未审核</span>";
    } else if (1 == value) {
        return "<span class='label label-success-light'>审核中</span>";
    } else if (2 == value) {
        return "<span class='label label-info-light'>审核通过</span>";
    } else if (3 == value) {
        return "<span class='label label-info-light'>审核失败</span>";
    } else if (4 == value) {
        return "<span class='label label-info-light'>审核通过并盖章</span>";
    }

}

/**
 * 自定义操作列内容
 */
function contractGenderOpt(value, row, index) {
    let html;
    if ((row.contractType == 2 || row.contractType == 4) && (row.contractStatus == 2 || row.contractStatus == 3)) {
        html = '<button type="button" class="btn btn-default renew" data-toggle="modal" data-target="#addProductModal"><i class="mdi mdi-coin"></i>续费</button>';
    }
    return html;
}

/**
 * 自定义操作列事件
 */
window.contractOperateEvents = {
    //查看点击事件
    'click #detail': function (e, value, row, index) {
        parent.$(parent.document).data('multitabs').create({
            iframe : true,
            title : '合同详情',
            url : "/front/contractManager/contractDetail?contractId=" + row.contractId
        }, true);
    },
    'click .renew': function (e, value, row, index) {
        contractId = row.contractId;
        customerIdNum = row.customerId;
        initList();

        //初始化商机和跟进记录
        initFollowRecord(customerIdNum);
        //初始化商机
        initOpportunity(customerIdNum);
    }
};

//订单
function orderc(){
    //先销毁表格
    $orderDetail.bootstrapTable('destroy');
    $orderDetail.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customerController/orderList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'productOrderId',
        idField: 'productOrderId',
        pageSize: 5,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: ['5', '10', '50'],//可供选择的每页的行数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sortName: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                customerId : customerId
            };
            return temp;
        },
        columns: [
            {title: '主键', field: 'productOrderId', visible: false},
            {title: '序号', field: 'index', align: 'left', width: '60', valign: 'middle', formatter: indexFormat},
            {title: '订单编号',field: 'orderNumber',align: 'left', valign: 'middle', formatter: orderNumberFormat},
            {title: '订单状态', field: 'orderStatus',  align: 'left', valign: 'middle',formatter: orderStatusFormat},
            {title: '订单类型', field: 'orderType', align: 'left', valign: 'middle',formatter: orderTypeFormat},
            {title: '订单实际总金额', field: 'orderActualTotalAmount', align: 'left', valign: 'middle'},
            {title: '订单完成时间', field: 'orderCompleteTm', align: 'left', valign: 'middle',formatter:dateFormat}
            /*{title: '操作',field: 'operate',align: 'right',events: productOrderOperateEvents,formatter: productOrderGenderOpt}*/
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

/**
 * 订单状态--1:等待回款;2:已完成;3:作废;4:部分回款
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function orderStatusFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (1 == value) {
        return "<span class='label label-success-light'>等待回款</span>";
    } else if (2 == value) {
        return "<span class='label label-info-light'>已完成</span>";
    } else if (3 == value) {
        return "<span class='label label-info-light'>作废</span>";
    } else if (4 == value) {
        return "<span class='label label-info-light'>部分回款</span>";
    }
}

/**
 * 订单类型--0:非会员订单;1:会员订单
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function orderTypeFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (0 == value) {
        return "<span class='label label-success-light'>非会员订单</span>";
    } else if (1 == value) {
        return "<span class='label label-success-light'>会员订单</span>";
    }
}

/**
 * 自定义操作列内容
 */
function productOrderGenderOpt(value, row, index) {
    let html = '';
    html += '<button class="btn btn-default" id="detail"><i class="mdi mdi-eye"></i>查看</button>';
    html += '</ul></div>'
    return html;
}

/**
 * 自定义操作列事件
 */
window.productOrderOperateEvents = {
    //查看点击事件
    'click #detail': function (e, value, row, index) {
        parent.$(parent.document).data('multitabs').create({
            iframe : true,
            title : '订单详情',
            url : "/front/orderManager/orderDetail?productOrderId=" + row.productOrderId+"&contractId="+ row.contractId
        }, true);
    }
};


//需求分析
function demandAnalysisListc(){
    //先销毁表格
    $demandAnalysisListDetail.bootstrapTable('destroy');
    $demandAnalysisListDetail.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customer/demandAnalysisList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'create_tm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'demandAnalysisId',
        idField: 'demandAnalysisId',
        pageSize: 5,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[5]",//可供选择的每页的行数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sortName: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                customerId :customerId
            };
            return temp;
        },
        columns: [
            {title: '主键', field: 'demandAnalysisId', visible: false},
            {title: '序号', field: 'index', align: 'left', width: '60', valign: 'middle', formatter: indexFormat},
            {title: '需求分析名称',field: 'demandAnalysisName',align: 'left', valign: 'middle'},
            {title: '解决方案', field: 'solution',  align: 'left', valign: 'middle'}

        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

//修改记录
function modificationRecordListc(){
    //先销毁表格
    $modificationRecordListDetail.bootstrapTable('destroy');
    $modificationRecordListDetail.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customer/modificationRecordList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'create_tm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'modificationRecordId',
        idField: 'modificationRecordId',
        pageSize: 5,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[5]",//可供选择的每页的行数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sortName: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                customerId :customerId
            };
            return temp;
        },
        columns: [
            {title: '主键', field: 'modificationRecordId', visible: false},
            {title: '序号', field: 'index', align: 'left', width: '60', valign: 'middle', formatter: indexFormat},
            {title: '修改名称',field: 'modificationName',align: 'left', valign: 'middle'},
            {title: '修改前', field: 'beforeModification',  align: 'left', valign: 'middle'},
            {title: '修改后', field: 'afterModification', align: 'left', valign: 'middle'},
            {title: '核实状态', field: 'verifyStatus', align: 'left', valign: 'middle',formatter: verifyStatusFormat}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

//竞品列表
function competitorListc(){
    //先销毁表格
    $competitorListDetail.bootstrapTable('destroy');
    $competitorListDetail.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customerController/competitorList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'competitorId',
        idField: 'competitorId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[5, 10, 20]",//可供选择的每页的行数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sortName: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                customerId :customerId
            };
            return temp;
        },
        columns: [
            {title: '主键', field: 'competitorId', visible: false},
            {title: '序号', field: 'index', align: 'left', width: '60', valign: 'middle', formatter: indexFormat},
            {title: '产品名称',field: 'productName',align: 'left', valign: 'middle'},
            {title: '竞品名称', field: 'competitorName',  align: 'left', valign: 'middle'},
            {title: '产品价格', field: 'productPrice', align: 'left', valign: 'middle'},
            {title: '竞品价格',field: 'competitorPrice',align: 'left', valign: 'middle'},
            {title: '竞品单位', field: 'competitorUnit',  align: 'left', valign: 'middle'},
            {title: '竞品到期时间', field: 'competitorDueTime', align: 'left', valign: 'middle', formatter:dateFormat},
            {title: '当前预算',field: 'currentBudget',align: 'left', valign: 'middle'},
            {title: '预算负责人', field: 'budgetDirector',  align: 'left', valign: 'middle'},
            {title: '负责人联系方式', field: 'directorInformation', align: 'left', valign: 'middle',
                formatter: function (value, row) {
                    var telBtn = '';
                    if (value) {
                        telBtn += '<button class="tel-button" onclick="callCenter(this);"><i class="mdi mdi-phone"></i></button>';
                    }
                    return transTelNumber(value) + telBtn;
                }
            },
            {title: '创建时间',field: 'createTm',align: 'left', valign: 'middle',formatter:dateFormat}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

//商机管理
function opportunityListc(){
    //先销毁表格
    $opportunityListDetail.bootstrapTable('destroy');
    $opportunityListDetail.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customerController/opportunityByCustomerIdList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'opportunityId',
        idField: 'opportunityId',
        pageSize: 5,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[5]",//可供选择的每页的行数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sortName: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                customerId :customerId
            };
            return temp;
        },
        columns: [
            {title: '主键', field: 'opportunityId', visible: false},
            {title: '序号', field: 'index', align: 'center', valign: 'middle', formatter: indexFormat},
            {title: '商机标题', field: 'opportunityTitle', align: 'left', valign: 'middle',formatter: opportunityTitleFormat},
            /*{title: '客户名称', field: 'customerName', align: 'left', valign: 'middle'},*/
            {title: '客户联系人', field: 'contactName', align: 'left', valign: 'middle',formatter: oppContactNameFormat},
            {title: '商机状态', field: 'opportunityStatus', align: 'left', valign: 'middle',formatter: opportunityStatusFormat},
            {title: '创建时间', field: 'createTm', align: 'left', valign: 'middle',formatter:dateFormat},
            {title: '预计签单时间', field: 'estimatedSigningTime', align: 'left', valign: 'middle',formatter:dateFormat},
            {title: '最后跟进时间', field: 'lastFollowUpTime', align: 'left', valign: 'middle',formatter:dateFormat}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

//工作日志
function matterType(value, row, index) {
    let html='';
    switch (value) {
        case 0:
            html = "无";
            break;
        case 1:
            html = "客户落实";
            break;
        case 2:
            html = "日常沟通";
            break;
        case 3:
            html = "需求挖掘";
            break;
        case 4:
            html = "会员维护";
            break;
        case 5:
            html = "促单";
            break;
    }
    return html;
}
function workLogListc() {
    $workLogListcDetail.bootstrapTable('destroy');
    $workLogListcDetail.bootstrapTable({
        classes: 'table table-hover table-bordered',
        url: '/workLog/selectWorkLogListByPage',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: false,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'logId',
        idField: 'logId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[10]",//可供选择的每页的行数
        queryParams: function(params){
            params.pageSize = params.limit;
            params.pageIndex = (params.offset / params.limit) + 1;
            params.sortName = params.sort; //排序列名
            params.sortOrder = params.order;//排序方式
            params.bs = '1'; //标识  0管理端 1用户端
            return params;
        },//查询参数
        columns: [
            {title: '主键', field: 'logId', visible: false},
            {title: '序号', field: 'index', align: 'center', valign: 'left', width: '60', formatter: indexFormat},
            {title: '日志标题', field: 'logName', align: 'left', valign: 'middle'},
            {title: '类型', field: 'logType', align: 'left', valign: 'middle', formatter: matterType},
            {title: '客户名称', field: 'customerName', align: 'left', valign: 'middle'},
            {title: '创建时间', field: 'createTm', align: 'left', valign: 'middle', sortable: true},
            {title: '所有人', field: 'userName', align: 'left', valign: 'middle'},
            // {title: '操作', field: 'operate', align: 'right', events: editInfo, formatter: genderOpt}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {

        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

function nxContact() {
    $nxContactList.bootstrapTable('destroy');
    $nxContactList.bootstrapTable({
        classes: 'table table-hover table-bordered',
        url: '/training/selectContactByCustomerId',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: false,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'contactId',
        idField: 'contactId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[10]",//可供选择的每页的行数
        queryParams: function(params){
            params.pageSize = params.limit;
            params.pageIndex = (params.offset / params.limit) + 1;
            params.sortName = params.sort; //排序列名
            params.sortOrder = params.order;//排序方式
            params.customerId = customerId; //客户id
            return params;
        },//查询参数
        columns: [
            {title: '主键', field: 'contactId', visible: false},
            {title: '序号', field: 'index', align: 'center', valign: 'left', width: '60', formatter: indexFormat},
            {title: '姓名', field: 'contactName', align: 'left', valign: 'middle'},
            {title: '联系方式', field: 'contactInformation', align: 'left', valign: 'middle'}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {

        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

/**
 * 会员卡
 */
function cardc() {
    $cardList.bootstrapTable('destroy');
    $cardList.bootstrapTable({
        classes: 'table table-hover table-bordered',
        url: '/customerController/selectCardByCustomerIdList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: false,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'customerProductDetailMemberCardId',
        idField: 'customerProductDetailMemberCardId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[10]",//可供选择的每页的行数
        queryParams: function(params){
            params.pageSize = params.limit;
            params.pageIndex = (params.offset / params.limit) + 1;
            params.sortName = params.sort; //排序列名
            params.sortOrder = params.order;//排序方式
            params.customerId = customerId; //客户id
            return params;
        },//查询参数
        columns: [
            {title: '主键', field: 'customerProductDetailMemberCardId', visible: false},
            {title: '序号', field: 'index', align: 'center', valign: 'left', width: '60', formatter: indexFormat},
            {title: '产品名称', field: 'productName', align: 'left', valign: 'middle'},
            {title: '会员卡号', field: 'memberCardNumber', align: 'left', valign: 'middle'},
            {title: '密码', field: 'memberCardPassword', align: 'left', valign: 'middle'},
            {title: '开始时间', field: 'startTm', align: 'left', valign: 'middle'},
            {title: '合同编号', field: 'contractNumber', align: 'left', valign: 'middle', formatter: contractNumberFormat},
            {title: '订单编号', field: 'orderNumber', align: 'left', valign: 'middle', formatter: orderNumberFormat},
            {title: '操作', field: 'operate', align: 'right', width: '80', events: productEvents, formatter: consumptionProductOpt}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {

        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

/**
 * 会员产品操作列内容
 */
function consumptionProductOpt(value, row, index) {
    var html = '<button type="button" onclick=\'xfjl(\"'+row.memberCardNumber+'")\' class="btn btn-default"><i class="mdi mdi-format-list-bulleted"></i>消费记录</button>';
    return html;
}

function xfjl(memberCardNumber){
    var url = 'https://nsrjlb.com/m/m_xuanchan/cardRecording.php?name=' + memberCardNumber;
    $('#expensesRecordIframe').attr('src', url)
    $('#expensesRecordIframe').css('width', '100%')
    $('#expensesRecordIframe').css('height', '550px')
    $('#expensesRecord').modal('show')
}

/**
 * 税法直通车
 */
function taxCardc() {
    $taxCardList.bootstrapTable('destroy');
    $taxCardList.bootstrapTable({
        classes: 'table table-hover table-bordered',
        url: '/customerController/selectTaxCardByCustomerIdList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: false,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'throughTrainTaxId',
        idField: 'throughTrainTaxId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[10]",//可供选择的每页的行数
        queryParams: function(params){
            params.pageSize = params.limit;
            params.pageIndex = (params.offset / params.limit) + 1;
            params.sortName = params.sort; //排序列名
            params.sortOrder = params.order;//排序方式
            params.customerId = customerId; //客户id
            return params;
        },//查询参数
        columns: [
            {title: '主键', field: 'throughTrainTaxId', visible: false},
            {title: '序号', field: 'index', align: 'center', valign: 'left', width: '60', formatter: indexFormat},
            {title: '会员卡号', field: 'memberCardNumber', align: 'left', valign: 'middle'},
            {title: '密码', field: 'memberCardPassword', align: 'left', valign: 'middle'},
            {title: '创建', field: 'createTm', align: 'left', valign: 'middle'}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {

        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}
function genderOptCoupon(value, row, index) {
    console.log(row,'row')
    let html = '';
    html += '<button class="btn btn-default" ' +
        'onclick="detailDiscountCoupon(\''+row.chsCustomerCouponId+'\')">详情</button>';
    return html;
}
function detailDiscountCoupon(couponId) {
    parent.$(parent.document).data('multitabs').create({
        iframe : true,
        title : '优惠详情',
        url : "/front/activityManager/couponDetail?couponId="+couponId+"&type="+0+"&customerId="+customerId
    }, true);
}

/**
 * 优惠券
 */
function coupon() {
    $couponList.bootstrapTable('destroy');
    $couponList.bootstrapTable({
        classes: 'table table-hover table-bordered',
        url: '/couponissued/couponIssuedPageList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: false,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'receiveCouponId',
        idField: 'receiveCouponId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[10]",//可供选择的每页的行数
        queryParams: function(params){
            params.pageSize = params.limit;
            params.pageIndex = (params.offset / params.limit) + 1;
            params.sortName = params.sort; //排序列名
            params.sortOrder = params.order;//排序方式
            params.customerId = customerId; //客户id
            return params;
        },//查询参数
        columns: [
            {title: '主键', field: 'receiveCouponId', visible: false},
            {title: '序号', field: 'index', align: 'center', valign: 'left', width: '60', formatter: indexFormat},
            {title: '优惠券编码', field: 'chsCustomerCouponId', align: 'left', valign: 'middle'},
            {title: '优惠券名称', field: 'couponName', align: 'left', valign: 'middle'},
            {title: '优惠券适用范围', field: 'scopeOfApplication', align: 'left', valign: 'middle', formatter:switchScopeOfApplicatione},
            {title: '优惠券类型', field: 'couponType', align: 'left', valign: 'middle',formatter:switchCouponType},
            {title: '优惠券状态', field: 'used', align: 'left', valign: 'middle',formatter:switchUsed},
            {title: '有效期', field: 'validPeriod', align: 'left', valign: 'middle'},
            {title: '发放日期', field: 'createTm', align: 'left', valign: 'middle'},
            {title: '操作',field: 'operate',align: 'right',formatter: genderOptCoupon}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {

        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

function switchScopeOfApplicatione(value, row, index) {
    switch (row.scopeOfApplication) {
        case 0:
            return '部分产品';
            break;
        case 1:
            return '全部产品';
            break;
    }
}

function switchCouponType(value, row, index) {
    switch (row.couponType) {
        case 1:
            return '折扣类';
            break;
        case 2:
            return '额度类';
            break;
    }
}
function switchUsed(value, row, index) {
    switch (row.used) {
        case 0:
            return '未使用';
            break;
        case 1:
            return '已使用';
            break;
    }
}

/****************************************************************************************
*
*
*
*
*
* */

/**
 * 点击商机标题跳转商机详情页面
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function opportunityTitleFormat(value, row, index) {
    return '<a href="JavaScript:void(0);" onclick=\'opportunityDetail(\"'+row.opportunityId+'")\'>'+value+'</a>';
}

function  opportunityDetail(opportunityId) {
    parent.$(parent.document).data('multitabs').create({
        iframe : true,
        title : '商机详情',
        url : "/front/user/opportunityManager/userOpportunityDetail?opportunityId=" + opportunityId
    }, true);
}

/**
 * 点击商机联系人姓名跳转联系人详情页面
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function oppContactNameFormat(value, row, index) {
    return '<a href="JavaScript:void(0);" onclick=\'oppContactDetail(\"'+row.contactId+'")\'>'+value+'</a>';
}

function  oppContactDetail(contactId) {
    parent.$(parent.document).data('multitabs').create({
        iframe: true,
        title: '联系人详情',
        url: "/front/user/contactManager/contactDetail?contactId=" + contactId
    },true);
}

//跟进记录
function followUpRecordc(){
    //先销毁表格
    $followUpRecordDetail.bootstrapTable('destroy');
    $followUpRecordDetail.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customerController/clueFollowList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'clueFollowId',
        idField: 'clueFollowId',
        pageSize: 5,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[5]",//可供选择的每页的行数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sortName: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                customerId :customerId
            };
            return temp;
        },
        columns: [
            {title: '主键', field: 'clueFollowId', visible: false},
            {title: '序号', field: 'index', align: 'center', valign: 'middle', formatter: indexFormat},
            {title: '跟进方式', field: 'followWay', align: 'left', valign: 'middle',formatter: followWayFormat},
            {title: '跟进时间', field: 'followTm', align: 'left', valign: 'middle',formatter:dateFormat},
            {title: '联系人姓名', field: 'contactName', align: 'left', valign: 'middle',formatter:followContactNameFormat},
            {title: '联系方式', field: 'contactInformation', align: 'left', valign: 'middle',
                formatter: function (value, row) {
                    var telBtn = '';
                    if(row.followSource == 6 && row.personPhone){//一机多用联系人显示(直接从cp_clue_follow表获取)
                        telBtn += '<button class="tel-button" onclick="callCenter(\'' + row.personPhone + '\');"><i class="mdi mdi-phone"></i></button>';
                        return transTelNumber(row.personPhone) + telBtn;
                    }else{
                        if (value) {
                            telBtn += '<button class="tel-button" onclick="callCenter(this);"><i class="mdi mdi-phone"></i></button>';
                            return transTelNumber(value) + telBtn;
                        } else {
                            return '-';
                        }
                    }
                }
            },
            {
                title: '跟进详情', field: 'followDetail', align: 'left', valign: 'middle',
                cellStyle: function (value, row, index) {
                    return {
                        css: {
                            "min-width": "100px",
                            "white-space": "nowrap",
                            "text-overflow": "ellipsis",
                            "overflow": "hidden",
                            "max-width": "200px"
                        }
                    }
                }
            },
            /*{title: '意向判断', field: 'intentionJudgment', align: 'left', valign: 'middle'},
            {title: '跟进目的', field: 'followPurpose', align: 'left', valign: 'middle',formatter: followPurposeFormat},
            {title: '标签', field: 'tag', align: 'left', valign: 'middle'},
            {title: '产品类别', field: 'followProduct', align: 'left', valign: 'middle',formatter: followProductFormat},
            {title: '过程类别', field: 'followProcess', align: 'left', valign: 'middle',formatter: followProcessFormat},
            {title: '创建时间', field: 'createTm', align: 'left', valign: 'middle',formatter:dateFormat},*/
            {title: '操作', field: 'operate', align: 'left',events: operateEvents, formatter: followUpRecordGenderOpt}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}


/**
 * 自定义操作列内容
 */
function followUpRecordGenderOpt(value, row, index) {
    var html = '<button type="button" id="customerFollowRecordDetail" class="btn btn-default"><i class="mdi mdi-eye"></i>查看</button>';
    return html;
}

window.operateEvents = {
    //查看点击事件--(followWay)跟进方式：1-线上电话；2-拜访 3-微信 4-线下电话 5-邮箱 6-陪访
    'click #customerFollowRecordDetail': function (e, value, row, index) {
        parent.$(parent.document).data('multitabs').create({
            iframe : true,
            title : '跟进详情',
            url : "/front/customerManager/customerFollowRecordDetail?followWay=" + row.followWay +"&clueFollowId=" + row.clueFollowId
        }, true);
    }
};

//拜访记录
function visitRecordc(){
    //先销毁表格
    $visitRecordDetail.bootstrapTable('destroy');
    $visitRecordDetail.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customerController/visitRecordList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'clueVisitRecordId',
        idField: 'clueVisitRecordId',
        pageSize: 5,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[5]",//可供选择的每页的行数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sortName: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                customerId :customerId
            };
            return temp;
        },
        columns: [
            {title: '主键', field: 'clueVisitRecordId', visible: false},
            {title: '序号', field: 'index', align: 'center', valign: 'middle', formatter: indexFormat},
            {title: '拜访目的', field: 'visitPurpose', align: 'left', valign: 'middle'},
            {title: '陪访人', field: 'accompanyingPerson', align: 'left', valign: 'middle'},
            {title: '拜访地址', field: 'visitAddress', align: 'left', valign: 'middle'},
            {title: '联系人', field: 'accompanyVisitPeople', align: 'left', valign: 'middle'},
            {title: '联系电话', field: 'contactInformation', align: 'left', valign: 'middle',
                formatter: function (value, row) {
                    var telBtn = '';
                    if (value) {
                        telBtn += '<button class="tel-button" onclick="callCenter(this);"><i class="mdi mdi-phone"></i></button>';
                    }
                    return transTelNumber(value) + telBtn;
                }
            },
            {title: '职务', field: 'contactJob', align: 'left', valign: 'middle',formatter: contactPositionFormat},
            {title: '沟通时长(分)', field: 'communicationTime', align: 'left', valign: 'middle',formatter: TimeFormat},
            {title: '拜访详情', field: 'visitDetail', align: 'left', valign: 'middle'},
            {title: '创建时间', field: 'createTm', align: 'left', valign: 'middle',formatter:dateFormat},
            {title: '操作', field: 'operate', align: 'left',events: operateEvents, formatter: visitRecordGenderOpt}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}


/**
 * 新增续费弹框
 */
/*function renewTableInit(){
    //先销毁表格
    $renewTable.bootstrapTable('destroy');
    $renewTable.bootstrapTable({
        classes: 'table  table-hover table-responsive ',
        url: '/customerMemberProduct/selectContractMemberProductList',//请求地址
        method: 'post',//请求方式
        contentType: "application/json;charset=utf-8",//请求内容类型
        dataType: "json",//数据类型
        height: 300,
        // // minimumCountColumns:5,
        // fixedColumns: true,
        // showColumns: true,
        // scrollCollapse: true,
        // scrollY:true,
        fixedNumber: 1, //固定列数
        striped: false,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        // clickToSelect: true,                // 是否启用点击选中行
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'clueVisitRecordId',
        idField: 'clueVisitRecordId',
        pageSize:100,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[20]",//可供选择的每页的行数
        serverSelected: true,// 开启后端分页记住已选项功能
        serverSelectedField: "customerProductId",// 已选项的唯一识别主键
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var temp = {
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sortName: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                whetherRenew :1
            };
            return JSON.stringify(temp);
        },
        columns: [
            {title: '主键', field: 'customerProductId', visible: false},
            {checkbox: true, visible: true},
            {title: '产品名称', field: 'productName', align: 'left', valign: 'middle'},
            {title: '产品原价', field: 'productOriginalPrice', align: 'left', valign: 'middle'},
            {title: '产品单价', field: 'productUnitPrice', align: 'left', valign: 'middle'},
            {title: '产品会员价', field: 'productMemberPrice', align: 'left', valign: 'middle'},
            {title: '当前报价', field: 'productDiscountPrice', align: 'left', valign: 'middle', width: '160', events: productFormat.priceEvent, formatter: productFormat.discountPrice},
            {title: '购买数量', field: 'productNumber', align: 'left', valign: 'middle', width: '160', events: productFormat.numberEvent, formatter: productFormat.number},
            // {title: '计价', field: 'number', align: 'left', valign: 'middle'},
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onPostBody: function (data) {
            calculationAmount();
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onCheckAll:function(rows){
            calculationAmount();
        },
        onCheck:function(row){
            calculationAmount();
        },
        onUncheck:function(row){
            calculationAmount();
        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}*/

function calculationAmount(){
    var totalFlag = true;
    var examineFlag = false;

    var productPriceTotal = 0;          // 产品总金额 = 产品原价 * 数量
    var valuationTotal = 0;             // 计价总计  = 当前报价 * 数量
    var productMemberPriceTotal = 0;    // 产品会员价


    var idlist = $('#renewTable').bootstrapTable('getAllSelections');

    for (var i = 0; i < idlist.length; i++) {
        valuationTotal += idlist[i].productDiscountPrice * idlist[i].productNumber;
        productPriceTotal += idlist[i].productMemberPrice * idlist[i].productNumber;
        productMemberPriceTotal += idlist[i].productMemberPrice * idlist[i].productNumber;
        if (idlist[i].productDiscountPrice == '') {
            totalFlag = false;
        }
        // 当前报价小于会员价 && 不为空 => 触发审核
        if (idlist[i].productDiscountPrice < idlist[i].productMemberPrice && idlist[i].productDiscountPrice != '') {
            examineFlag = true;
            $('#examineType').val('1');
        } else {
            $('#examineType').val('0');
        }
    }
    // 表格右上方计价总计赋值
    $('#productTotal').html(valuationTotal);
    // 隐藏域赋值：计价总计
    $('#productTotalInput').val(valuationTotal);
    // 会员产品总金额
    $('#productDiscountTotalInput').val(productPriceTotal);

    // 统计价格: 报价不为空进行总价计算并判断是否触发审批，为空则合同金额归零
    if (totalFlag) {
        // 价格统计
        priceTotal();
        // 审核判断：报价小于会员价则触发审批
        if (examineFlag) {
            // 触发审核
            $('.approval').show(0);
        } else {
            // 不触发审核
            $('.approval').hide(0);
            $('.approval').find('input, textarea').val('');
        }
    } else {
        // 当前报价为空时，合同金额归零处理并隐藏审核条件
        $('#totalAmount, #discountAmount, #realAmount, #receivables').html('0');
        $('.approval').hide(0);
        $('.approval').find('input, textarea').val('');
    }
}

/**
 * 活动产品列表 - 自定义内容
 * */
var productFormat = {
    // 产品价格
    priceChose: function (value, row, index, field) {
        return value;
    },
    // 当前报价
    discountPrice: function (value, row, index, field) {
        var discountPriceValue;
        value == undefined ? discountPriceValue = '' : discountPriceValue = value;
        if (discountPriceValue != '') {
            discountPriceValue = parseFloat(discountPriceValue);
        }
        var inputId = 'productDiscountPrice' + index;
        var inputHtml = '<input type="text" value="' + discountPriceValue + '" placeholder="请输入" class="form-control" id="' + inputId + '">';
        row.productDiscountPrice = discountPriceValue || $(inputHtml).val();

        return inputHtml;
    },
    // 产品数量
    number: function (value, row, index, field) {
        var numberValue = Number(value) || 1;
        var inputId = 'productNumber' + index;
        var inputHtml = '<input type="text" value="' + numberValue + '" placeholder="请输入" class="form-control" id="' + inputId + '">';
        row.productNumber = numberValue || $(inputHtml).val();

        return inputHtml;
    },
    // 总计
    total: function (value, row, index, field) {
        return row.productDiscountPrice * row.productNumber;
    },
    // 优惠后价格 自定义事件
    priceEvent: {
        'change input': function (e, value, row, index) {
            var newValue = productPriceTest(e, value, row);
            if (newValue == 'stop') return;

            productFormat.discountPrice(newValue, row);
            $('#renewTable').bootstrapTable('updateRow', {
                index,
                replace: true,
                row
            });
        }
    },
    numberEvent: {
        'change input': function (e, value, row, index) {
            // 对数值进行判断
            var newValue = numberTest(e, value);
            if (newValue == 'stop') return;

            productFormat.number(newValue, row);
            productFormat.total(value, row, index, 'productTotal');
            $('#renewTable').bootstrapTable('updateRow', {
                index,
                replace: true,
                row
            });
        }
    }
};


/**
 * 功能：产品数量判断
 * */
function numberTest(e, preValue) {
    // 移除字符串的空格
    var newVal = $(e.target).val().replace(/\s/g,"");
    if (newVal == '0') {
        promptInfo('数量必须大于等于 1，请重新输入！');
        $(e.target).val(preValue);
        return 'stop';
    }
    if (newVal % 1 !== 0 || newVal < 0 || newVal == '') {
        promptInfo('数量只能为正整数，请重新输入！');
        $(e.target).val(preValue);
        return 'stop';
    }
    if (newVal == preValue) {
        $(e.target).val(preValue);
        return 'stop';
    }
    return newVal;
}

/**
 * 功能：产品列表价格判断
 * */
function productPriceTest(e, preValue, row) {
    // 获取当前价格(移除字符串的空格)
    var newVal = $(e.target).val().replace(/\s/g,"");
    // 输入空值判断
    if (newVal == '') {
        return '';
    }
    // 输入值等于前值判断
    if (newVal == preValue) {
        $(e.target).val(preValue);
        return 'stop';
    }
    // '非数字'或'小于0' 判断
    if (isNaN(newVal) || newVal < 0) {
        promptInfo("请输入正确的价格！");
        $(e.target).val(preValue);
        return 'stop';
    }
    return parseFloat(newVal).toFixed(2);
}

/**
 * 功能：价格统计显示
 * 说明：合同总金额 = 非会员产品原价(会员产品会员价) * 数量
 *      产品计价总计 = 当前报价 * 数量
 *      合同优惠总金额 = 合同总金额 - 产品计价总计 + 优惠券减免额度
 *      应收款 = 计价总计 - 优惠免减额度 + 附加费用
 * */
function priceTotal() {
    var $productTotalValue = parseFloat($('#productDiscountTotalInput').val()) || 0;                                // 合同总金额
    var $productDiscountTotalValue = parseFloat($('#productTotalInput').val()) || 0;                                // 合同计价总计 = 当前报价 * 数量
    var $surchargeValue = parseFloat($('#surcharge').val()) || 0;                                                   // 附加费用
    var $couponValue = 0;

    // 合同总金额 = 非会员产品原价(会员产品会员价) * 数量
    var totalAmountVal = $productTotalValue;
    $('#totalAmount').html(Number(totalAmountVal.toFixed(2)));
    // 合同优惠总金额 = 合同总金额 - 产品计价总计 + 优惠券减免额度
    var discountAmountVal = $productTotalValue - $productDiscountTotalValue + $couponValue;
    if (discountAmountVal < 0 ) {
        discountAmountVal = 0;
    }
    $('#discountAmount').html(Number(discountAmountVal.toFixed(2)));

    // 合同实际总金额 = 计价总计 - 优惠券免减额度
    var realAmountVal = $productDiscountTotalValue - $couponValue;
    $('#realAmount').html(Number(realAmountVal.toFixed(2)));

    // 应收款 = 计价总计 - 优惠券免减额度 + 附加费用
    var receivablesVal = $productDiscountTotalValue - $couponValue + $surchargeValue;
    $('#receivables').html(Number(receivablesVal.toFixed(2)));
}


/**
 * 自定义操作列内容
 */
function visitRecordGenderOpt(value, row, index) {
    var html = '<button type="button" id="visitRecordDetail" class="btn btn-default"><i class="mdi mdi-eye"></i>查看</button>';
    return html;
}

/**
 * --列表序列号
 */
function indexFormat(value, row, index) {
    return index + 1;
}

/**
 * 时间转换
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function dateFormat(value, row, index) {
    if (value != null) {
        var date = new Date(value);
        var month = date.getMonth()+1;
        var tian = date.getDate();
        if (month >= 1 && month <= 9) {
            month = "0" + month;
        }
        if (tian >= 1 && tian <= 9) {
            tian = "0" + tian;
        }

        return date.getFullYear() + '-' + month + '-' + tian;
    }
}

/**
 * 自定义操作列内容
 */
function genderOpt(value, row, index) {
    if (row.abolishState == 1) {
        var html = '<button type="button" class="btn btn-default" id="edit" onclick="editContact(\'' + row.customerContactPersonId + '\');"><i class="mdi mdi-pencil"></i>修改</button>';
        return html;
    } else {
        return '<span >-</span>';
    }
}


/**
 * 自定义操作列内容
 */
function workLogGenderOpt(value, row, index) {
    let html = '';
    html +='<a class="js-create-tab btn btn-default" style="line-height: 20px" href="#!" data-url="front/workLog/viewWorkLog?logId=' + row.logId + '"> 查看</a>';
    html += '<button type="button" class="btn btn-default" id="deletTd">删除</button>';
    return html;
}

/**
 * 联系人废止状态  1启动 2废止
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function abolishStateFormat(value, row, index){
    var is_checked = '';
    if (value == null || value == undefined || value == 0) {
        return "-";
    }else if (value == 2) {
        is_checked = '';
    } else if (value == 1) {
        is_checked = 'checked="checked"';
    }
    var poolStateHtml = '<label class="lyear-switch switch-solid switch-success">' +
        '<input type="checkbox" id="abolishState' + row.customerContactPersonId  + '" ' + is_checked + '>' +
        '<span  onClick="updateAbolishState(\'' + row.customerContactPersonId + '\',\'' + row.contactName + '\',\'' + row.contactInformation + '\',\'' + row.isSeniorExecutive + '\', \'' + value + '\')"></span>' +
        '</label>';
    return poolStateHtml;
}

/**
 * 联系人类型(在职 0  离职 1)
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function poolTypeFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (0 == value) {
        return "<span class='label label-success-light'>在职</span>";
    } else if (1 == value) {
        return "<span class='label label-info-light'>离职</span>";
    }
}

/**
 * 联系人类型(主联系人1  从联系人2)
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function contactStateFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (1 == value) {
        return "<span class='label label-success-light'>主</span>";
    } else if (2 == value) {
        return "<span class='label label-info-light'>从</span>";
    }
}

/**
 * 核实状态(1-核实成功  2核实失败 3待核实 4核实未知)
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function verifyStatusFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (1 == value) {
        return "<span class='label label-success-light'>核实成功</span>";
    } else if (2 == value) {
        return "<span class='label label-info-light'>核实失败</span>";
    }else if (3 == value) {
        return "<span class='label label-info-light'>待核实</span>";
    }else if (4 == value) {
        return "<span class='label label-info-light'>核实未知</span>";
    }
}

/**
 * 需求  0-产品,1-会员
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function demandTypeFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (0 == value) {
        return "<span class='label label-success-light'>产品</span>";
    } else if (1 == value) {
        return "<span class='label label-info-light'>会员</span>";
    }
}

/**
 * 点击商机标题跳转商机详情页面
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function opportunityTitleFormat(value, row, index) {
    return '<a href="JavaScript:void(0);" onclick=\'opportunityDetail(\"'+row.opportunityId+'")\'>'+value+'</a>';
}

function  opportunityDetail(opportunityId) {
    parent.$(parent.document).data('multitabs').create({
        iframe : true,
        title : '商机详情',
        url : "/front/user/opportunityManager/userOpportunityDetail?opportunityId=" + opportunityId
    }, true);
}

/**
 * 点击联系人姓名跳转联系人详情页面
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function sjContactNameFormat(value, row, index) {
    var contactName = value.substring(0,value.lastIndexOf('_'));
    var contactId = value.substring(value.lastIndexOf('_')+1,value.length);
    return '<a href="JavaScript:void(0);" onclick=\'SjContactDetail(\"'+contactId+'")\'>'+contactName+'</a>';
}

/**
 * 点击跟进记录,联系人姓名跳转联系人详情页面
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function followContactNameFormat(value, row, index) {
    if(row.followSource == 6 && row.personName){//一机多用联系人显示(直接从cp_clue_follow表获取)
        return '<span href="JavaScript:void(0);">' + row.personName+'</span>';
    }else{
        if(value != null) {
            return '<a href="JavaScript:void(0);" onclick=\'SjContactDetail(\"'+row.contactId+'")\'>'+value+'</a>';
        } else {
            return '-'
        }
    }
}

function  SjContactDetail(contactId) {
    parent.$(parent.document).data('multitabs').create({
        iframe: true,
        title: '联系人详情',
        url: "/front/user/contactManager/contactDetail?contactId=" + contactId
    },true);
}

/**
 * 商机状态
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function opportunityStatusFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (1 == value) {
        return "<span class='label label-success-light'>初步洽谈</span>";
    } else if (2 == value) {
        return "<span class='label label-yellow-light'>需求确定</span>";
    } else if (3 == value) {
        return "<span class='label label-info-light'>方案报价</span>";
    } else if (4 == value){
        return "<span class='label label-purple-light'>谈判</span>";
    }else if (5 == value){
        return "<span class='label label-purple-light'>洽谈合同</span>";
    }else if (6 == value){
        return "<span class='label label-purple-light'>赢单</span>";
    }else if (7 == value){
        return "<span class='label label-purple-light'>输单</span>";
    }
}

/**
 * 跟进方式
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function followWayFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (1 == value) {
        return "<span class='label label-success-light'>线上电话</span>";
    } else if (2 == value) {
        return "<span class='label label-yellow-light'>拜访</span>";
    } else if (3 == value) {
        return "<span class='label label-info-light'>微信</span>";
    } else if (4 == value){
        return "<span class='label label-purple-light'>线下电话</span>";
    }else if (5 == value){
        return "<span class='label label-purple-light'>邮箱</span>";
    }else if (6 == value){
        return "<span class='label label-purple-light'>陪访</span>";
    }
}

/**
 * 客户质量
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function customerQualityFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (1 == value) {
        return "<span class='label label-success-light'>优</span>";
    } else if (2 == value) {
        return "<span class='label label-yellow-light'>良</span>";
    } else if (3 == value) {
        return "<span class='label label-info-light'>一般</span>";
    }
}

/**
 * 跟进目的
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function followPurposeFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (1 == value) {
        return "<span class='label label-success-light'>产品跟进</span>";
    } else if (2 == value) {
        return "<span class='label label-yellow-light'>过程跟进</span>";
    }
}

/**
 * 产品类别
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function followProductFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (1 == value) {
        return "<span class='label label-success-light'>会员</span>";
    } else if (2 == value) {
        return "<span class='label label-yellow-light'>非会员</span>";
    }
}

/**
 * 过程类别
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function followProcessFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else if (1 == value) {
        return "<span class='label label-success-light'>询问意向</span>";
    } else if (2 == value) {
        return "<span class='label label-yellow-light'>再次跟进</span>";
    }else if (3 == value) {
        return "<span class='label label-yellow-light'>成交</span>";
    }else if (4 == value) {
        return "<span class='label label-yellow-light'>意向关怀</span>";
    }
}

/**
 * 转换为分
 * @param value
 * @param row
 * @param index
 * @returns {number}
 * @constructor
 */
function TimeFormat(value, row, index) {
    var time = value/60;
    return time;
}

/**
 * 职务
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function contactPositionFormat(value, row, index) {
    if (value == null || value == undefined) {
        return "-";
    } else {
        return '<span class="label label-info-light">' + value + '</span>';
    }
}

/**
 * 商机的自定义操作列内容
 */
function opportunityOpt(value, row, index) {
    var html = '<button type="button" class="btn btn-default" onclick="getOpportunityId(' + row.opportunityId + ')"><i class="mdi mdi-pencil"></i>修改</button>';
    html += '<button type="button" class="btn btn-default btn-danger" onclick="deleteOpportunity(' + row.opportunityId + ')">><i class="mdi mdi-delete"></i>删除</button>';
    return html;
}


/**
 * 开启/废止客户详情下联系人
 * @param customerContactPersonId 客户下联系人id
 * @param contactName 联系人姓名
 * @param contactInformation 联系方式
 * @param isSeniorExecutive  0高管 1非高管
 * @param abolishState 废止状态  1启动 2废止
 */
function updateAbolishState(customerContactPersonId,contactName,contactInformation,isSeniorExecutive, abolishState){
    var abolishState = (abolishState == 1) ? 2 : 1; // 发送参数值跟当前参数值相反
    var confirmMessage = '';
    if (abolishState == 1) {
        confirmMessage = "确定启用联系人吗？";
    } else {
        confirmMessage = "确定废止联系人吗？";
    }

    $.alert({
        title: '提示',
        content: confirmMessage,
        buttons: {
            confirm: {
                text: '确认',
                btnClass: 'btn-primary',
                action: function () {
                    $.ajax({
                        type: "post",
                        url: "/customer/updateAbolishState",
                        data: {
                            customerId : customerId,
                            customerContactPersonId: customerContactPersonId,
                            contactName : contactName,
                            contactInformation : contactInformation,
                            abolishState: abolishState,
                            contactNature : "0"
                        },
                        dataType: 'json',
                        success: function (data, status) {
                            if (data.code == '000000') {
                                companyInformationc('0');
                                contactListc('1');
                                $contactListDetail.bootstrapTable('updateCellById', {id: customerContactPersonId, field: 'abolishState', value: abolishState});
                                 promptInfo('操作成功');
                            } else {
                                 promptInfo(data.message);
                                $contactListDetail.bootstrapTable('updateCellById', {id: customerContactPersonId, field: 'abolishState', value: abolishState}); // 因开关点击后样式是变的，失败也重置下
                            }
                        },
                        error: function () {
                             promptInfo('修改失败，请稍后再试!');
                            $contactListDetail.bootstrapTable('updateCellById', {id: customerContactPersonId, field: 'abolishState', value: abolishState}); // 因开关点击后样式是变的，失败也重置下
                        }
                    });
                }
            },
            cancel: {
                text: '取消',
                action: function () {
                    if(abolishState == 1){
                        $("#abolishState" + customerContactPersonId).prop('checked',false);
                    }else {
                        $("#abolishState" + customerContactPersonId).prop('checked',true);
                    }
                }
            }
        }
    });
}

// 渲染城市列表
function getProvinceLxr() {
    let provinceNames = [];
    $.each(cityJson[0], function (key, value) {
        provinceNames.push('<option value="' + key + '">' + value + '</option>')
    });
    $('#province').html(provinceNames.join('')).selectpicker('refresh');
    // getCityLxr('110000');
}
// 根据省获取市
function getCityLxr(provinceId) {
    $('#city').html('');
    let key = '0,' + provinceId;
    let cityNames = [];
    $.each(cityJson[key], function (key, value) {
        cityNames.push('<option value="' + key + '">' + value + '</option>')
    });
    $('#city').html(cityNames.join('')).selectpicker('refresh');
}
// '切换城市'
function changeCityLxr() {
    getCityLxr($('#province').val())
}

/**
 * 新增联系人
 */
function addCustomerContactPerson() {
    getProvinceLxr();

    $("#addModel").find('input[type=text],select').each(function() {
        $(this).val('').selectpicker('refresh');
    });
    $('#addModel').modal('show');
}

$("#contactType").change(function(){
    var td=$('#contactType option:selected').text();
    if(td =="其他"){
        $(".qt_a").css("display","inline-block");
    }else {
        $(".qt_a").css("display","none");
        $("#contactTypeQt").val("");
    }
});

/**
 * 提交新增联系人
 */
function saveCustomerContactPerson() {
    var contactName = $('#contactNameAdd').val(); //联系人姓名
    var contactPosition= $('#contactPositionAdd').val();  //职务
    var contactInformation= $('#contactInformationAdd').val();  //联系方式
    var extNumber= $('#extNumber').val();  //分机号
    var onTheJobSituation = $('#onTheJobSituationAdd').val();  //在职情况
    var isSeniorExecutive = $('#isSeniorExecutive').val();  //高管状态
    var provinceId = $('#province').val();
    var provinceName = $('#province').find("option:selected").text();
    var cityId= $('#city').val();
    var cityName= $("#city").find("option:selected").text();
    var industry = $('#industry').val();  //行业
    var companyAddress = $('#companyAddress').val();  //公司地址
    var wx = $('#wxAdd').val();  //微信
    var mailBox = $('#mailBoxAdd').val();  //邮箱
    var currentIntention = $('#currentIntention').val();  //目前意向   0有意向 1无意向
    var contactState = $('#contactState').val();  //联系人类型    主联系人-1   从联系人-2
    var homeAddress = $('#homeAddress').val();  //家庭住址
    var duplicateContact = $('#duplicateContact').val();  //重名联系人
    var contactType = $('#contactType').val(); //联系类型
    var contactInformationType = $('#contactInformationType').val(); //联系方式类型

    // 验证表单
    var bootstrapValidator = $("#addContactForm").data('bootstrapValidator');
    bootstrapValidator.validate();
    if (!bootstrapValidator.isValid()) {
        return;
    }

    repeat(contactInformation, contactName, addDuplicateContact, $('#addModel'));
}

function repeat (contactInformation, contactName, fun, originalModal, formData){
    // console.log(originalModal)
    //同一客户下联系方式不能一样
    $.ajax({
        url: '/contact/getCustomerIdAndContactInformation',
        type: 'POST',
        dataType: "json",
        data: {
            customerId: customerId,
            contactInformation : contactInformation,
            contactNature : '0'
        },
        success: (function (data) {
            if (data.code == "000000") {
                if (originalModal[0].id) {
                    if (data.data.length != 0) {
                        // 7b096dc1e04747eb848ba28b7fcb2c11
                        // contactId
                        if ($('#budgetDirector').val() == data.data[0].contactName) {
                            fun && fun(formData, data.data[0].contactId);
                        } else {
                            $.confirm({
                                title: '提示',
                                content: '<strong>\n' +
                                    '<p>您输入的联系方式已存在,请重新编辑!</p>\n' +
                                    '</strong>',
                                icon: 'glyphicon glyphicon-question-sign',
                                buttons: {
                                    ok: {
                                        text: '确定',
                                        btnClass: 'btn-primary',
                                        action: function () {
                                            return;
                                        }
                                    },
                                }
                            });
                        }
                    } else {
                        getContactName(contactName, fun, originalModal, formData);
                    }
                    return;
                }
                if (data.data.length != 0) {
                    if (!originalModal[0].id) {
                        $.confirm({
                            title: '提示',
                            content: '<strong>\n' +
                                '<p>您输入的联系方式已存在,请重新编辑!</p>\n' +
                                '</strong>',
                            icon: 'glyphicon glyphicon-question-sign',
                            buttons: {
                                ok: {
                                    text: '确定',
                                    btnClass: 'btn-primary',
                                    action: function () {
                                        return;
                                    }
                                },
                            }
                        });
                    }
                } else {
                    getContactName(contactName, fun, originalModal, formData);
                }

            } else {
                promptInfo("操作失败");
            }
        }),
        error: (function () {
            promptInfo("失败");
        })
    });
}

//联系人-新增联系人--同一客户下联系人重名-->合并联系方式
function getContactName(contactName, fun, originalModal, formData){
    var formData = formData || '';
    $.ajax({
        url: '/contact/getContactName',
        type: 'POST',
        dataType: "json",
        data: {
            customerId: customerId,
            contactName,
            contactNature : '0'
        },
        success: (function (data) {
            if (data.code == "000000") {

                $("#duplicateContacts").find('input[type=text],select').each(function() {
                    $(this).val('');
                });

                if (data.code == "000000") {
                    if(data.data.length == 0){
                        fun && fun(formData);
                    }else{
                        var html = '<option value="">请选择</option>';
                        $.each(data.data, function(n, value) {
                            html += "<option value=" + value.contactId + ">" +  value.contactName+"_"+value.contactInformation + "</option>";
                        });
                        $("#duplicateContact").html(html).selectpicker('refresh');
                        originalModal.modal('hide');
                        $('#duplicateContacts').modal('show');
                        $('#addDuplicateContactBtn').one('click', function () {
                            fun(formData);
                        })

                    }

                } else {
                    promptInfo("请求失败");
                }

            } else {
                promptInfo("操作失败");
            }
        }),
        error: (function () {
            promptInfo("失败");
        })
    });
}

//1直接新增  2校验联系方式去重
function addDuplicateContact(){
    var contactName = $('#contactNameAdd').val(); //联系人姓名
    var contactPosition= $('#contactPositionAdd').val();  //职务
    var contactInformation= $('#contactInformationAdd').val();  //联系方式
    var extNumber= $('#extNumber').val();  // 分机号
    var onTheJobSituation = $('#onTheJobSituationAdd').val();  //在职情况
    var isSeniorExecutive = $('#isSeniorExecutive').val();  //高管状态
    var provinceId = $('#province').val();
    var provinceName = $('#province').find("option:selected").text();
    var cityId= $('#city').val();
    var cityName= $("#city").find("option:selected").text();
    var industry = $('#industry').val();  //行业
    var companyAddress = $('#companyAddress').val();  //公司地址
    var wx = $('#wxAdd').val();  //微信
    var mailBox = $('#mailBoxAdd').val();  //邮箱
    var currentIntention = $('#currentIntention').val();  //目前意向   0有意向 1无意向
    var contactState = $('#contactState').val();  //联系人类型    主联系人-1   从联系人-2
    var homeAddress = $('#homeAddress').val();  //家庭住址
    var duplicateContact = $('#duplicateContact').val();  //重名联系人
    var contactType = $('#contactType').val(); //联系类型
    var contactInformationType = $('#contactInformationType').val(); //联系方式类型

    if(contactType =="其他"){
        contactType = $('#contactTypeQt').val();
    }

    var jsonDatan = {
        contactName: contactName,  //联系人姓名
        contactPosition: contactPosition,  //职务
        contactInformation: contactInformation,  //联系方式
        extNumber: extNumber,  //分机号
        onTheJobSituation : parseInt(onTheJobSituation),  //在职情况
        isSeniorExecutive : parseInt(isSeniorExecutive),  //高管状态
        provinceId : provinceId,
        provinceName : provinceName,
        cityId: cityId,
        cityName: cityName,
        industry : industry,  //行业
        companyAddress : companyAddress,  //公司地址
        wx : wx,  //微信
        mailBox : mailBox,  //邮箱
        currentIntention : currentIntention,  //目前意向   0有意向 1无意向
        contactState : contactState,  //联系人类型    主联系人-1   从联系人-2
        customerId : customerId,
        mergeState : '0',
        homeAddress : homeAddress,  //家庭地址
        contactId : duplicateContact,  //联系人id  存在合并 不存在新增
        contactType : contactType,
        contactInformationType : contactInformationType
    };

    addContactAjax(jsonDatan);
}

function addContactAjax(jsonDatan){
    $.ajax({
        url: '/customer/addCustomerContactPerson',
        type: 'POST',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(jsonDatan),
        success: (function (data) {
            if (data.code == "000000") {
                 promptInfo("操作成功！");
                addHide();
                editduplicateContactHide();
                contactListc('1');
            } else {
                promptInfo("操作失败");
            }
        }),
        error: (function () {
            promptInfo("失败");
        })
    });
}

/**
 * 关闭重复联系人重名
 */
function editduplicateContactHide() {
    $('#duplicateContacts').modal('hide');
}

function addHide() {
    $('#addModel').modal('hide');
}

/**
 * 修改联系人
 */
function editContact(customerContactPersonId) {
    $.ajax({
        url: '/customer/getCustomerContactPerson',
        type: 'POST',
        dataType: "json",
        data: {
            customerContactPersonId : customerContactPersonId,
        },
        success: (function (data) {
            if (data.code == "000000") {
                $("#customerContactPersonId").val(data.data.customerContactPersonId);
                $("#contactName").val(data.data.contactName);
                $("#contactPosition").val(data.data.contactPosition);  //职务
                $("#onTheJobSituation").val(data.data.onTheJobSituation);  //在职情况
                $("#contactInformation").val(data.data.contactInformation);
                $("#mailBox").val(data.data.mailBox);  //wx
                $("#wx").val(data.data.wx);  //微信
                $('#editModel select').selectpicker('refresh');
                //$("#contactState").val(data.data.contactState);  //联系人类型    主联系人-1   从联系人-2
            } else {
                promptInfo("请求失败");
            }
        }),
        error: (function (res) {
            promptInfo("请求失败");
        })
    })
    $('#editModel').modal('show');
}

/**
 * 提交修改联系人
 */
function updateCustomerContactPerson() {
    var customerContactPersonId = $('#customerContactPersonId').val(); //客户下联系人id
    var contactName = $('#contactName').val(); //联系人姓名
    var contactPosition= $('#contactPosition').val();  //职务
    var contactInformation= $('#contactInformation').val();  //联系方式
    var onTheJobSituation = $('#onTheJobSituation').val();  //在职情况
    var wx = $('#wx').val();  //微信
    var mailBox = $('#mailBox').val();  //邮箱

    // 验证表单
    var bootstrapValidator = $("#edditContactForm").data('bootstrapValidator');
    bootstrapValidator.validate();
    if (!bootstrapValidator.isValid()) {
        return;
    }

    var jsonData = {
        customerContactPersonId : customerContactPersonId,
        contactName: contactName,  //联系人姓名
        contactPosition: contactPosition,  //职务
        contactInformation: contactInformation,  //联系方式
        onTheJobSituation : parseInt(onTheJobSituation),  //在职情况
        wx : wx,  //微信
        mailBox : mailBox,  //邮箱
        customerId : customerId,
        contactNature : "0"
    };

    $.ajax({
        url: '/customer/updateCustomerContactPerson',
        type: 'POST',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(jsonData),
        success: (function (data) {
            if (data.code == "000000") {
                $('#editModel').modal('hide');
                 promptInfo("操作成功！");
                companyInformationc('0');
                contactListc('1');
            }else {
                promptInfo("操作失败");
            }
        }),
        error: (function () {
            promptInfo("失败");
        })
    });


}


function editHide() {
    $('#editModel').modal('hide');
}

/**
 *跟进联系人
 */

function followUp() {

}

/**
 * 删除联系人
 */
function deleteCustomerContactPerson() {

}

function getNewsPicUpload(ele) {
    //文件选择
    var formData = new FormData();
    //获取选择文件个数
    var files = document.getElementById("files").files;
    //console.log(files);
    if (files.length == 0) {
    } else {
        var path = files[0].name;
        var suffix = path.substr(path.lastIndexOf('.'));
        var lowerSuffic = suffix.toLowerCase();
        if (lowerSuffic === '.jpg' || lowerSuffic === '.png' || lowerSuffic === '.gif') {
            //选择文件，上传选择文件
            for (let i = 0; i < files.length; i++) {
                formData.append('files', $(ele)[0].files[i]);
            }

            $.ajax({
                url: '/file/upload',
                type: 'POST',
                dataType: "json",
                contentType: false,
                data: formData,
                processData: false,
                success: (function (data) {
                    if (data.code == "000000") {
                        //进行照片回显
                        var files = new Array();
                        files = data.data;
                        $("#newsPic").attr('src', files[0].accessUrl);
                        $("#imageId").html(files[0].uploadId);
                    }
                }),
                error: (function (res) {
                     promptInfo("失败");
                })
            });
        } else {
             promptInfo('上传图片格式不正确');
        }



    }

}


/**
 * 新增需求分析
 */
function addDemandAnalysis() {
    $("#addDemandAnalysisModel").find('input[type=text],select').each(function () {
        $(this).val('');
    });
    $('#addDemandAnalysisModel').modal('show');
}

/**
 * 提交需求分析
 */
function saveDemandAnalysis() {
    var demandType = $('#demandType').val(); //需求
    var director = $('#director').val();  //负责人
    var contactInformation = $('#contactInformationxq').val();  //联系方式
    var position = $('#position').val();  //职务
    var budget = $('#budget').val();  //预算
    var budgetTime = $('#budgetTime').val();//预算时间
    var annualCapitalIncome = $('#annualCapitalIncome').val();  //资金年收入
    var presentCompetitor = $('#presentCompetitor').val();  //目前竞品
    var competitorDueTime = $('#competitorDueTime').val();  //竞品到期时间
    var currentProgram = $('#currentProgram').val();  //目前方案
    var purchaseIntention = $('#purchaseIntention').val();  //购买意向
    var fiscalYearTarget = $('#fiscalYearTarget').val();  //财年目标

    // 验证表单
    var bootstrapValidator = $("#demandAnalysisForm").data('bootstrapValidator');
    bootstrapValidator.validate();
    if (!bootstrapValidator.isValid()) {
        return;
    }

    var jsonData = {
        demandType: demandType, //需求
        director: director,  //负责人
        contactInformation: contactInformation,  //联系方式
        position: position,  //职务
        budget: budget,  //预算
        budgetTime: budgetTime,//预算时间
        annualCapitalIncome: annualCapitalIncome,  //资金年收入
        presentCompetitor: presentCompetitor,  //目前竞品
        competitorDueTime: competitorDueTime,  //竞品到期时间
        currentProgram: currentProgram,  //目前方案
        purchaseIntention: purchaseIntention,  //购买意向
        fiscalYearTarget: fiscalYearTarget,  //财年目标
        customerId: customerId
    };

    $.ajax({
        url: '/customer/addDemandAnalysis',
        type: 'POST',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(jsonData),
        success: (function (data) {
            if (data.code == "000000") {
                $('#addDemandAnalysisModel').modal('hide');
                 promptInfo("操作成功！");
                demandAnalysisListc();
            } else {
                promptInfo("操作失败");
            }
        }),
        error: (function () {
            promptInfo("失败");
        })
    });
}

function addDemandAnalysisHide() {
    $('#addDemandAnalysisModel').modal('hide');
}


/**
* 新增竞品记录
*/
function addCompetitor() {
    //竞品到期时间
    $("#competitorDueTimej").datepicker({
        language: "zh-CN",
        autoclose: true,
        clearBtn: true,
        todayHighlight: true,
        format: "yyyy-mm-dd"
    });
    $("#competitorDueTimej").on('hide', function(event) {
        event.stopPropagation();
    });
    $("#addCompetitorModel").find('input[type=text],select').each(function () {
        $(this).val('');
    });
    $('#addCompetitorModel').modal('show');
}

/**
 * 提交竞品
 */
function saveCompetitor() {
    $('#competitorForm').bootstrapValidator({
        fields: {
            productName: {
                validators: {
                    notEmpty: {
                        message: '产品名称不能为空'
                    }
                }
            },
            competitorName: {
                validators: {
                    notEmpty: {
                        message: '竞品名称不能为空'
                    }
                }
            },
            budgetDirector: {
                validators: {
                    notEmpty: {
                        message: '预算负责人不能为空'
                    }
                }
            },
            directorInformation: {
                validators: {
                    notEmpty: {
                        message: '负责人联系方式不能为空'
                    },
                    // regexp: {
                    //     regexp: /^(0|86|17951)?(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|14[57])[0-9]{8}$/,
                    //     //regexp: /(^(\d{2,4}[-_－—]?)?\d{3,8}([-_－—]?\d{3,8})?([-_－—]?\d{1,7})?$)|(^0?1[35]\d{9}$)/,
                    //     message: '请输入正确的联系方式'
                    // }
                    stringLength:{
                        max:12,
                        message:'请输入正确的联系方式'
                    }
                }
            },
        }
    });

    var productName = $('#productName').val(); //产品名称
    var competitorName = $('#competitorName').val();  //竞品名称
    var productPrice = $('#productPrice').val();  //产品价格
    var competitorPrice = $('#competitorPrice').val();  //竞品价格
    var competitorUnit = $('#competitorUnit').val();  //竞品单位
    var competitorDueTime = $('#competitorDueTimej').val();//竞品到期时间
    var currentBudget = $('#currentBudget').val();  //当前预算
    var budgetDirector = $('#budgetDirector').val();  //预算负责人
    var directorInformation = $('#directorInformation').val();  //负责人联系方式

    // 验证表单
    var bootstrapValidator = $("#competitorForm").data('bootstrapValidator');
    bootstrapValidator.validate();
    if (!bootstrapValidator.isValid()) {
        return;
    }

    var jsonData = {
        productName : productName, //产品名称
        competitorName : competitorName,  //竞品名称
        productPrice : productPrice,  //产品价格
        competitorPrice : competitorPrice,  //竞品价格
        competitorUnit : competitorUnit,  //竞品单位
        competitorDueTime : competitorDueTime,//竞品到期时间
        currentBudget : currentBudget,  //当前预算
        budgetDirector : budgetDirector,  //预算负责人
        directorInformation : directorInformation,  //负责人联系方式
        customerId: customerId
    };

    repeat(directorInformation, budgetDirector, addJingPin, $('#addCompetitorModel'), jsonData);
}

function addJingPin(data, id) {
    var duplicateContact = $('#duplicateContact').val();  //重名联系人
    data.contactId = id || duplicateContact;  //联系人id  存在合并 不存在新增
    console.log(data);
    $.ajax({
        url: '/customerController/addCompetitor',
        type: 'POST',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(data),
        success: (function (data) {
            if (data.code == "000000") {
                // $('#addCompetitorModel').modal('hide');
                 promptInfo("添加竞品操作成功！");
                $('#addCompetitorModel').modal('hide');
                editduplicateContactHide();
                competitorListc();
            } else {
                promptInfo("操作失败");
            }
        }),
        error: (function () {
            promptInfo("失败");
        })
    });
}

function addCompetitorHide() {
    $('#addCompetitorModel').modal('hide');
}

/**
 * 新增商机
 */
function addOpportunity() {
    parent.$(parent.document).data('multitabs').create({
        iframe : true,
        title : '新增商机',
        url : "/front/opportunityManager/addOpportunity?opportunityBs=3&customerId=" + customer.customerId + "&customerName=" + customer.customerName
    }, true);
}

function refreshTable(id) {
    $('#'+id).bootstrapTable('refresh');
}

/**
 * 产品名称和客户联系人下拉框
 * @param bs 1新增 2修改
 */
function opportunityaddAndEdit(bs){
    //产品列表下拉框
    $.ajax({
        type: 'POST',
        dataType: "json",
        url: '/opportunity/productList',
        cache : false,
        data:{
        },
        async : false,
        success: (function (data) {
            if (data.code == "000000") {

                if (data.data.length == 0) {
                    if(bs == 1){
                        $("#customerProductId").selectpicker('destroy').hide(0).after('<button type="button" class="btn btn-success btn-label" onclick="addCustomerProduct()"><label><i class="mdi mdi-plus"></i></label>新增产品</button>')
                    }else{
                        $("#customerProductIdEdit").selectpicker('destroy').hide(0).after('<button type="button" class="btn btn-success btn-label" onclick="addCustomerProduct()"><label><i class="mdi mdi-plus"></i></label>新增产品</button>')
                    }

                } else {
                    var html = '';
                    $.each(data.data, function(n, value) {
                        html += "<option value=" + value.customerProductId + ">" +  value.productName + "</option>";
                    });
                    if(bs ==1){
                        $("#customerProductId").html(html).selectpicker('refresh');
                    }else{
                        $("#customerProductIdEdit").html(html).selectpicker('refresh');
                    }

                }
            } else {
                promptInfo("请求失败");
            }
        }),
        error: (function (res) {
            promptInfo("请求失败");
        })
    });

    //联系人列表下拉框
    $.ajax({
        type: 'POST',
        dataType: "json",
        url: '/opportunity/contactByCustomerIdList',
        cache : false,
        data:{
            customerId : customerId
        },
        async : false,
        success: (function (data) {
            if (data.code == "000000") {
                $('#addContact').remove();      // 初始化删除添加按钮
                if (data.data.length == 0) {
                    if(bs == 1){
                        $("#contactId").selectpicker('destroy').hide(0).after('<button type="button" class="btn btn-success btn-label" onclick="addContact()"><label><i class="mdi mdi-plus"></i></label>新增联系人</button>')
                    }else{
                        $("#contactIdEdit").selectpicker('destroy').hide(0).after('<button type="button" class="btn btn-success btn-label" onclick="addContact()"><label><i class="mdi mdi-plus"></i></label>新增联系人</button>')
                    }

                } else {
                    var html = '';
                    $.each(data.data, function(n, value) {
                        html += "<option value=" + value.contactId + ">" +  value.contactName+"_"+value.contactInformation + "</option>";
                    });
                    if(bs == 1){
                        $("#contactId").html(html).selectpicker('refresh');
                    }else{
                        $("#contactIdEdit").html(html).selectpicker('refresh');
                    }

                }
            } else {
                promptInfo("请求失败");
            }
        }),
        error: (function (res) {
            promptInfo("请求失败");
        })
    });
}

/**
 * 新增产品点击事件
 */
function addCustomerProduct(){
    parent.$(parent.document).data('multitabs').create({
        iframe : true,
        title : '新增产品',
        url : "/front/productManager/addProduct?productBs=3"
    }, true)
}


/**
 * 新增联系人
 */
function addContact(){
    parent.$(parent.document).data('multitabs').create({
        iframe : true,
        title : '新增联系人',
        url : "/front/contactManager/addContact?customerId=" + customerId + "&contactBs=1"  //联系人返回标识 1客户详情-->新增商机-->新增联系人
    }, true);
}



function getOpportunityId(opportunityId) {
    opportunityaddAndEdit(2);


    $('#updateOpportunityModel').modal('show');
    /*$('#updateOpportunityModel').find('select').selectpicker({
        liveSearch: true,
        liveSearchPlaceholder: '请输入要搜索的内容',
        sanitize: true,
        size: 10,
        windowPadding: '10'
    });*/

    $.ajax({
        url: '/opportunity/getOpportunityId',
        type: 'POST',
        dataType: "json",
        data: {
            opportunityId : opportunityId
        },
        success: (function (data) {
            if (data.code == "000000") {
                $('#opportunityId').val(data.data.opportunityId);
                $('#opportunityTitleEdit').val(data.data.opportunityTitle); //商机标题
                $('#customerProductIdEdit').selectpicker('val', data.data.customerProductId);//产品名称
                $('#opportunityThemeEdit').val(data.data.opportunityTheme);  //商机主题
                $('#contactIdEdit').selectpicker('val', data.data.contactId);///客户联系人
                $('#opportunityContactEdit').val(data.data.opportunityContact);  //商机联系人
                $('#opportunityStatusEdit').val(data.data.opportunityStatus);  //商机状态
                $('#lostOrderFriendEdit').val(data.data.lostOrderFriend);  //输单友商
                $('#estimatedSigningTimeEdit').val(dateFormat(data.data.estimatedSigningTime,null,null));  //预计签单时间
                $('#lastFollowUpTimeEdit').val(dateFormat(data.data.lastFollowUpTime,null,null));  //最后跟进时间
                $('#nextFollowUpTimeEdit').val(dateFormat(data.data.nextFollowUpTime,null,null));  //下次跟进时间
                $('#estimatedSalesAmountEdit').val(data.data.estimatedSalesAmount);  //预计销售金额
                $('#possibilitySigningEdit').val(data.data.possibilitySigning);  //签单可能性
                $('#opportunityTypeEdit').val(data.data.opportunityType); //商机类型
                $('#opportunityAcquisitionTimeEdit').val(dateFormat(data.data.opportunityAcquisitionTime,null,null)); //商机获取日期
                $('#opportunitySourceEdit').val(data.data.opportunitySource); //商机来源
                $('#remarksEdit').val(data.data.remarks); //备注
                editOpportunity();

            }else {
                promptInfo("操作失败");
            }
        }),
        error: (function () {
            promptInfo("失败");
        })
    });

}

function deleteOpportunity(opportunityId) {
    console.log(opportunityId);
    $.confirm({
        title: '提示',
        content: '<strong>\n' +
            '<p>确定要删除这一条商机吗?</p>\n' +
            '</strong>',
        icon: 'glyphicon glyphicon-question-sign',
        buttons: {
            ok: {
                text: '确定',
                btnClass: 'btn-primary',
                action: function() {
                    $.ajax({
                        url: '/opportunity/updateOpportunity',
                        type: 'POST',
                        dataType: "json",
                        data: {
                            opportunityId : opportunityId
                        },
                        success: (function (data) {
                            if (data.code == "000000") {
                                 promptInfo("操作成功！");
                                opportunityListc();
                            }else {
                                 promptInfo("操作失败");
                            }
                        }),
                        error: (function () {
                             promptInfo("失败");
                        })
                    });
                }
            },
            cancel: {
                text: '取消',
                btnClass: 'btn-primary',
                action: function () {

                }
            }
        }
    });
}


/**
 * 修改商机
 */
function editOpportunity() {
    // 初始化日期选择控件
    $('form .date-inputSjEdit').datepicker({
        language: "zh-CN",
        autoclose: true,
        clearBtn: true,
        todayHighlight: true,
        format: "yyyy-mm-dd"
    });

    $('#updateOpportunityModel').modal('show');
    }

//修改商机
function updateOpportunity() {
    var opportunityTitle = $('#opportunityTitleEdit').val(); //商机标题
    var customerProductId= $('#customerProductIdEdit').val();  //产品名称
    var opportunityTheme= $('#opportunityThemeEdit').val();  //商机主题
    var contactId = $('#contactIdEdit').val();  //客户联系人
    var opportunityContact = $('#opportunityContactEdit').val();  //商机联系人
    var opportunityStatus= $('#opportunityStatusEdit').val();  //商机状态
    var lostOrderFriend = $('#lostOrderFriendEdit').val();  //输单友商
    var estimatedSigningTime = $('#estimatedSigningTimeEdit').val();  //预计签单时间
    var lastFollowUpTime = $('#lastFollowUpTimeEdit').val();  //最后跟进时间
    var nextFollowUpTime = $('#nextFollowUpTimeEdit').val();  //下次跟进时间
    var estimatedSalesAmount = $('#estimatedSalesAmountEdit').val();  //预计销售金额
    var possibilitySigning = $('#possibilitySigningEdit').val();  //签单可能性
    var opportunityType = $('#opportunityTypeEdit').val(); //商机类型
    var opportunityAcquisitionTime = $('#opportunityAcquisitionTimeEdit').val(); //商机获取日期
    var opportunitySource = $('#opportunitySourceEdit').val(); //商机来源
    var remarks = $('#remarksEdit').val(); //备注

    //商机标题为空判断
    var contactNameReg = /^[\u4e00-\u9fa5A-Za-z0-9_-]+[\)）（，；\(\.\%。\u4e00-\u9fa5A-Za-z0-9_-]?$/;
    var pattern = new RegExp(contactNameReg);
    if(!opportunityTitle){
        promptInfo("商机标题不能为空！");
        return;
    }else{
        if(!pattern.test(opportunityTitle)) {
            promptInfo("请输入正确的商机标题");
            return;
        }
    }

    //产品名称为空判断
    if(!customerProductId){
        promptInfo("产品名称不能为空！");
        return;
    }

    //商机主题为空判断
    if(!opportunityTheme){
        promptInfo("商机主题不能为空！");
        return;
    }

    //客户联系人为空判断
    if(!contactId){
        promptInfo("客户联系人不能为空！");
        return;
    }

    //商机联系人
    if(!opportunityContact){
        promptInfo("商机联系人不能为空！");
        return;
    }else{
        if(!pattern.test(opportunityContact)) {
            promptInfo("请输入正确的商机联系人");
            return;
        }
    }

    //商机状态
    if(!opportunityStatus){
        promptInfo("商机状态不能为空！");
        return;
    }


    //输单友商为空判断
    if(!lostOrderFriend){
        promptInfo("输单友商不能为空！");
        return;
    }else{
        if(!pattern.test(lostOrderFriend)) {
            promptInfo("请输入正确的输单友商");
            return;
        }
    }

    //预计签单时间为空判断
    if(!estimatedSigningTime){
        promptInfo("预计签单时间不能为空！");
        return;
    }

    //最后跟进时间为空判断
    if(!lastFollowUpTime){
        promptInfo("最后跟进时间不能为空！");
        return;
    }

    //下次跟进时间
    if(!nextFollowUpTime){
        promptInfo("下次跟进时间不能为空！");
        return;
    }

    //预计销售金额为空判断
    var priceReg = /(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/;
    var pricePattern = new RegExp(priceReg);
    if (!estimatedSalesAmount) {
        promptInfo("预计销售金额不能为空！");
        return;
    }else{
        if(!pricePattern.test(estimatedSalesAmount)) {
            promptInfo("请输入正确的预计销售金额");
            return;
        }
    }

    //签单可能性为空判断
    //var possibilitySigningReg = /^\d{1,}$/; // 非负整数
    //var possibilitySigningPattern = new RegExp(possibilitySigningReg);
    if (!possibilitySigning) {
        promptInfo("签单可能性不能为空！");
        return;
    }
    // else {
    //     if (!possibilitySigningPattern.test(possibilitySigning)) {
    //         promptInfo("签单可能性必须是整数！");
    //         return;
    //     }
    // }

    //商机类型为空判断
    if (!opportunityType) {
        promptInfo("商机类型不能为空！");
        return;
    }

    //商机获取日期为空判断
    if (!opportunityAcquisitionTime) {
        promptInfo("商机获取日期不能为空！");
        return;
    }

    //商机来源为空判断
    if (!opportunitySource) {
        promptInfo("商机来源不能为空！");
        return;
    }

    //备注为空判断
    if (!remarks) {
        promptInfo("备注不能为空！");
        return;
    }

    var jsonData = {
        opportunityId : $('#opportunityId').val(),
        opportunityTitle : opportunityTitle, //商机标题
        customerProductId : customerProductId,  //产品名称
        opportunityTheme : opportunityTheme,  //商机主题
        contactId  : contactId,  //客户联系人
        opportunityContact  : opportunityContact,  //商机联系人
        opportunityStatus : opportunityStatus,  //商机状态
        lostOrderFriend  : lostOrderFriend,  //输单友商
        estimatedSigningTime  : estimatedSigningTime,  //预计签单时间
        lastFollowUpTime  : lastFollowUpTime,  //最后跟进时间
        nextFollowUpTime  : nextFollowUpTime,  //下次跟进时间
        estimatedSalesAmount : estimatedSalesAmount,  //预计销售金额
        possibilitySigning : possibilitySigning,  //签单可能性
        opportunityType : opportunityType, //商机类型
        opportunityAcquisitionTime : opportunityAcquisitionTime, //商机获取日期
        opportunitySource : opportunitySource, //商机来源
        remarks : remarks //备注
    };

    $.ajax({
        url: '/opportunity/updateOpportunityById',
        type: 'POST',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(jsonData),
        success: (function (data) {
            if (data.code == "000000") {
                $('#updateOpportunityModel').modal('hide');
                 promptInfo("操作成功！");
                opportunityListc();
            }else {
                promptInfo("操作失败");
            }
        }),
        error: (function () {
            promptInfo("失败");
        })
    });

}

function updateOpportunityHide() {
    $('#updateOpportunityModel').modal('hide');
}

/*function promptInfo(content) {
    $.alert({
        title: '温馨提示',
        content: content,
        buttons: {
            confirm: {
                text: '确认',
                btnClass: 'btn-primary'
            }
        }
    });
}*/
//展开与收起
$(document).ready(function (e) {
    $("#hideShow").click(function (e) {
        $("#showContant").toggle();
    });
});

//新增兑换弹框
function addExchange(){
    addBeforeExchangeDetail();
    addAfterExchangeDetail();
    $('#addExchangeModel').modal('show')
}

//新增兑换-兑换前产品表格
function addBeforeExchangeDetail(){
    $addBeforeExchange.bootstrapTable('destroy');
    $addBeforeExchange.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        // url: '/customerController/orderList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'productOrderId',
        idField: 'productOrderId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[10]",//可供选择的每页的行数
        // queryParams: function (params) {
        //     //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
        //     var temp = {
        //         pageSize: params.limit,                         //页面大小
        //         pageIndex: (params.offset / params.limit) + 1,   //页码
        //         sortName: params.sort,      //排序列名
        //         sortOrder: params.order, //排位命令（desc，asc）
        //         customerId : customerId
        //     };
        //     return temp;
        // },
        columns: [
            {title: '主键', field: 'productOrderId', visible: false},
            {title: '产品名称', field: 'index', align: 'left',valign: 'middle'},
            {title: '划扣次数',field: 'orderNumber',align: 'left', valign: 'middle'},
            {title: '操作',field: 'operate',align: 'right',formatter: beforeExchangeForm}
        ],
        data:[{index:1}],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

//新增兑换-兑换后产品表格
function addAfterExchangeDetail(){
    $addAfterExchange.bootstrapTable('destroy');
    $addAfterExchange.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        // url: '/customerController/orderList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'productOrderId',
        idField: 'productOrderId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: "[10]",//可供选择的每页的行数
        // queryParams: function (params) {
        //     //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
        //     var temp = {
        //         pageSize: params.limit,                         //页面大小
        //         pageIndex: (params.offset / params.limit) + 1,   //页码
        //         sortName: params.sort,      //排序列名
        //         sortOrder: params.order, //排位命令（desc，asc）
        //         customerId : customerId
        //     };
        //     return temp;
        // },
        columns: [
            {title: '主键', field: 'productOrderId', visible: false},
            {title: '产品名称', field: 'index', align: 'left',valign: 'middle'},
            {title: '划扣次数',field: 'orderNumber',align: 'left', valign: 'middle'},
            {title: '操作',field: 'operate',align: 'right',formatter: beforeExchangeForm}
        ],
        data:[{index:1}],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}
function beforeExchangeForm(value, row, index){
    return '<button class="btn btn-default" id="detail">删除</button>'
}

getCustomerContactPersonSelect();
/**
 *客户联系人下拉加载（先选择客户名称调用）
 */
function getCustomerContactPersonSelect(contract){
    $.ajax({
        type: 'GET',
        dataType: "json",
        url: '/customer/selectContactPersonListByCustomerId?customerId=' + customerId,
        success: (function (data) {
            if (data.code == "000000") {
                var html = '';
                $.each(data.data, function(n, value) {
                    if(contract != null && contract.contactId == value.customerContactPersonId) {
                        html += '<option data-phone="' + value.contactInformation + '" value="' + value.customerContactPersonId + '"  selected>' + value.contactName + ' — '+ value.contactInformation +'</option>';
                    }else {
                        html += '<option data-phone="' + value.contactInformation + '" value="' + value.customerContactPersonId + '">' + value.contactName + ' — '+ value.contactInformation +'</option>';
                    }
                });

                $('#customerContractList').html(html).attr('disabled', false).selectpicker('refresh');
                $('#customerContractList').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
                    $('#phoneNumber').val($(this).find('option').eq(clickedIndex).data('phone'));
                    if($('#customerForm').data('bootstrapValidator')!=undefined){
                        $('#customerForm').data('bootstrapValidator')
                            .updateStatus('phoneNumber', 'NOT_VALIDATED',null)
                            .validateField('phoneNumber');
                    }

                })
                if (contract) {
                    $('#phoneNumber').val($('#customerContractList option:selected').data('phone'));
                }
            } else {
                promptInfo("客户联系人下拉请求失败");
            }
        }),
        error: (function (res) {
            promptInfo("客户联系人下拉请求失败");
        })
    });
}

/**
 * 上传图片
 * */
//uploadImg fileSelected
var $fileUpLoad=$("#contractImg")
function uploadImg(type) {
    if(type=='contractImg'){
        $fileUpLoad=$("#contractImg")
    }else{
        $fileUpLoad=$("#examineImgBox")
    }
    let fileToUpLoad=$fileUpLoad.prop('files')[0]
    var formFile = new FormData();
    formFile.append("file", fileToUpLoad);
    var data = formFile;
    var imgId;
    $.ajax({
        url: '/file/uploadByOneFile',
        data: data,
        type: "POST",
        dataType: "json",
        async: false,
        cache: false,
        processData: false,
        contentType: false,
        success: function (data) {
            if (data.code == "000000") {
                $fileUpLoad.prev().val(data.data.fileId)
                // obj.next('input.image-id').val(data.data.fileId)

                imgId = data.data.fileId;
            } else {
            }
        },
        error: (function (res) {
             promptInfo(res);
        })
    });
    return imgId;
}

//兑换弹出页中的上传附件
function uploadImgExchange() {
    var $fileUpLoadExchange=$("#exchangeContractImg");
    var $fileDom = $('#exchangeContractPic');
    let fileToUpLoad = $fileUpLoadExchange.prop('files')[0];
    // var myDate = new Date();
    // console.log('上传附件内容:'+fileToUpLoad+'----'+myDate.toLocaleTimeString());
    // 功能：合同附件点取消按钮清空文件域内容
    if (!fileToUpLoad) {
        $fileDom.val('');
        return;
    }
    // 功能：限制上传文件大小为2M内
    if (fileToUpLoad && fileToUpLoad.size > 1 * 1024 * 1024) {
        promptInfo('附件最大为2M，请重新选择！', function () {
            $fileUpLoadExchange.val('');
            $fileDom.val('');
        });
        return;
    }
    var formFile = new FormData();
    formFile.append("file", fileToUpLoad);
    var data = formFile;
    var imgId;
    $.ajax({
        url: '/file/uploadByOneFile',
        data: data,
        type: "POST",
        dataType: "json",
        async: false,
        cache: false,
        processData: false,
        contentType: false,
        success: function (data) {
            if (data.code == "000000") {
                $fileDom.val(data.data.fileId)
                imgId = data.data.fileId;
            }
        },
        error: (function (res) {
            $.alert(res);
        })
    });
    return imgId;
}
/**
 * 续费确定保存
 */
/*function renewSure(){
    //获取选中行的数据
    var productData = $('#renewTable').bootstrapTable('getSelections');
    var productArr = [];                                                            // 产品列表数组
    for (var i = 0; i < productData.length; i++) {
        if(productData[i].productDiscountPrice==''){
            promptInfo("当前报价不能为空!");
            return;
        }
        var rowData = {
            productId: productData[i].customerProductId,                            // 产品id
            productName: productData[i].productName,                                // 产品名称
            productCategories: productData[i].productCategories,                    // 产品分类--0:非会员;1:会员；
            productOriginalPrice: productData[i].productOriginalPrice,              // 原价
            productUnitPrice: productData[i].productUnitPrice,                      // 单价
            productMemberPrice: productData[i].productMemberPrice,                  // 会员价
            productFinalPrice: productData[i].productDiscountPrice,                 // 成交价
            productTotalPrice: productData[i].productTotalPrice,                    // 总计价格
            productQuantity: productData[i].productNumber,                          // 数量
            productCode:productData[i].productCode,                                 // 产品编码
        }
        productArr.push(rowData);
    }

    //验证
    var bootstrapValidator = $("#renewDetailForm").data('bootstrapValidator');
    bootstrapValidator.validate();
    if (!bootstrapValidator.isValid()) {
        return;
    }

    //客户id
    var customerId = "";
    //客户名称
    var customerName = "";
    //客户类型
    var customerType = "";
    //客户邮箱
    var customerEmail = "";
    //合同原来起始时间
    var contractOldStartDate = "";
    //合同原来结束时间
    var contractOldEndDate = "";

    //联系人id
    var contactId=$("#customerContractList").val();
    //联系人名称
    var contactName = $.trim(($('#customerContractList').find('option:selected').text().split('—'))[0]);
    //联系方式
    var contactDetails = $.trim(($('#customerContractList').find('option:selected').text().split('—'))[1]);
    //会员主合同
    var masterMembershipContract = "";
    //合同起止日期
    var contractPeriodValidity = $("#contractDate").val().split('至');
    // 起止时间-开始时间
    var contractNewStartDate = $.trim(contractPeriodValidity[0]);
    // 起止时间-结束时间
    var contractNewEndDate = $.trim(contractPeriodValidity[1]);
    //付款账号
    //var paymentAccount = $('#paymentAccount').val();
    //支付方式
    var paymentMethod = $('#defray').val();
    //附加费用
    //金额
    var orderSurcharge = $('#surcharge').val();
    //备注
    var orderSurchargeRemark = $('#orderSurchargeRemark').val();


    //合同实际总金额
    var contractActualTotalAmount = $("#realAmount").text();
    //合同优惠总金额
    var contractDiscountTotalAmount = $("#discountAmount").text();
    //合同 总金额
    var contractTotalAmount = $("#totalAmount").text();
    //应收款
    var contractReceivables= $("#receivables").text();

    //合同附件
    var contractAnnexId = $('#contractPic').val();
    //合同审核
    var reviewAnnexId = $('#examinedPic').val();

    //审核备注
    var contractReviewNotes = $('#contractReviewNotes').val();


    $.ajax({
        type: 'GET',
        async:false,
        dataType: "json",
        url: '/customerContract/selectContractByContractNumber?contractNumber=' + renewContractNumber,
        success: (function (data) {
            if (data.code == "000000") {
                customerId = data.data.customerId;
                customerName = data.data.customerName;
                customerType = data.data.customerType;
                customerEmail = data.data.customerEmail;
                contractOldStartDate = data.data.contractStartDate;
                contractOldEndDate = data.data.contractEndDate;
                masterMembershipContract = data.data.contractId;
            } else {
                promptInfo("获取合同信息请求失败");
            }
        }),
        error: (function (res) {
            promptInfo("获取合同信息请求失败");
        })
    });

    var jsonData = {
        "contractType":'4',
        "customerId":customerId,
        "customerName":customerName,
        "customerType":customerType,
        "contactId":contactId,
        "contactName":contactName,
        "contactDetails":contactDetails,
        "customerEmail":customerEmail,
        "masterMembershipContract":masterMembershipContract,
        "contractNewStartDate":contractNewStartDate,
        "contractNewEndDate":contractNewEndDate,
        //"paymentAccount":paymentAccount,
        "paymentMethod":paymentMethod,
        //"followRecordId":followRecordId,
        //"opportunityId":opportunityId,
        //"applyElectronicContract":applyElectronicContract,
        //"whetherKeepSecret":whetherKeepSecret,
        "contractOldStartDate":contractOldStartDate,
        "contractOldEndDate":contractOldEndDate,
        "contractTotalAmount":contractTotalAmount,
        "contractDiscountTotalAmount":contractDiscountTotalAmount,
        "contractActualTotalAmount":contractActualTotalAmount,
        "contractReceivables":contractReceivables,
        "contractReviewNotes":contractReviewNotes,
        //附加费用
        "orderSurcharge":orderSurcharge,
        "orderSurchargeRemark":orderSurchargeRemark,
        "contractAnnexId":contractAnnexId,
        "reviewAnnexId":reviewAnnexId,
        //"coDeveloperIdList":coDeveloperList,
        "customerContractProductAddQOList":productArr
    }
    console.log(jsonData)
    $.ajax({
        url: '/customerContract/addContractInformation',
        type: 'POST',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(jsonData),
        success: (function (data) {
            if(data.code == '000000'){
                $.alert({
                    title: '提示',
                    content: '保存成功！',
                    buttons: {
                        confirm: {
                            text: '确认',
                            btnClass: 'btn-primary',
                            action: function () {
                                //关闭弹框
                                $('#renewDetail').modal('hide');
                                //跳转到合同列表
                                openTab("合同列表","/front/contractManager/userContractForm");
                                //刷新列表
                                refreshActivePane("/front/contractManager/userContractForm");
                            }
                        }
                    }
                });
            } else if(data.code == 'CV0001'){
                //合同不能编辑
                $.alert(data.message);
            } else if(data.code == 'CV0002'){
                //没有会员产品合同不能保存
                $.alert(data.message);
            }else {
                $.alert("保存失败");
            }
        }),
        error: (function (res) {
            $.alert("保存失败");
        })
    })

}*/

function formerName(seniorExecutive){
    //先销毁表格
    $usedNameTable.bootstrapTable('destroy');
    $usedNameTable.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/customerRelation/selectCustomerRelationList',        // 请求地址
        //请求方式
        method: 'post',
        //请求内容类型
        contentType: "application/x-www-form-urlencoded",
        //数据类型
        dataType: "json",
        //是否显示行间隔色
        striped: true,
        //是否使用缓存
        cache: false,
        //cell没有值时显示
        undefinedText: '-',
        //每行的唯一标识
        uniqueId: 'customerRelationId',
        idField: 'customerRelationId',
        //查询参数                           // 可供选择的每页的行数
        queryParams: function (params) {
            params.customerId = customerId;
            return params;
        },
        columns: [
            {title: '主键', field: 'customerRelationId', visible: false},
            {title: '序号', field: 'index', align: 'left', width: '60', valign: 'middle', formatter: indexFormat},
            {title: '客户名称', field: 'relationName', align: 'left', valign: 'middle'},
            {title: '社会统一信用代码', field: 'unifiedSocialCreditCode', align: 'left', valign: 'middle'},
            {title: '状态', field: 'inspectionType', align: 'left', valign: 'middle',
                formatter: function (value) {
                    // 0-正确  1-错误 2-正在核验
                    switch (value) {
                        case 0:
                            return '<span class="label label-success">正确</span>';
                            break;
                        case 1:
                            return '<span class="label label-danger">错误</span>';
                            break;
                        case 2:
                            return '<span class="label label-warning">正在核验</span>';
                    }
                }
            },
            {title: '操作', field: 'operate', align: 'right', width: '90',
                formatter: function (value, row, index) {
                    var html = '';
                    var disabledflag = '';
                    if (row.inspectionType != 0) {
                        disabledflag = 'disabled';
                    }
                    html += '<button type="button" class="btn btn-default" ' + disabledflag + ' onclick="switchAction(\'' + row.customerRelationId + '\', \'' + row.relationName + '\', \'' + row.unifiedSocialCreditCode + '\', \'' + row.inspectionType + '\');"><i class="mdi mdi-tumblr-reblog"></i>切换</button>';
                    html += '<button type="button" class="btn btn-default btn-danger" onclick="deleteAction(\'' + row.customerRelationId + '\');"><i class="mdi mdi-delete"></i>删除</button>';
                    return html;
                }
            },

        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.data.length //总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function (data) {
            console.log(data)
            // 判断table数据三条隐藏新增数据按钮
            if (data.rows.length > 2) {
                $('#addNewData').prop('disabled', true);
            } else {
                $('#addNewData').prop('disabled', false);
            }
        },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

function addNewData() {
    // 曾用名及企业关联 相关功能
    $('#addNewDataForm').bootstrapValidator({
        excluded: [":not(:visible)"],
        fields: {
            addCustomerName: {
                validators: {
                    notEmpty: {
                        message: '客户名称不能为空'
                    }
                }
            },
            addUnifiedSocialCreditCode: {
                validators: {
                    notEmpty: {
                        message: '社会信用统一代码不能为空'
                    },
                    stringLength: {
                        min: 15,
                        max: 20,
                        message: '统一社会信用码长度在15-20位以内'
                    },
                    regexp: {
                        regexp: /^[a-z0-9]+$/i,
                        message: '统一社会信用码必须输入数字,大小字母'
                    }
                }
            },
            addRelationType: {
                validators: {
                    notEmpty: {
                        message: '请选择关联类型'
                    }
                }
            }
        }
    });
    // 获取表单对象
    var bootstrapValidator = $("#addNewDataForm").data('bootstrapValidator');
    // 手动触发验证
    bootstrapValidator.validate();
    if (!bootstrapValidator.isValid()) {
        return;
    }

    // 关联类型
    var relationType = $('#addRelationType').val();
    // 客户名称
    var relationName = $('#addCustomerName').val();
    // 社会统一信用代码
    var unifiedSocialCreditCode = $('#addUnifiedSocialCreditCode').val();

    var data = {
        relationType,
        relationName,
        customerId
    }

    if (relationType == 1) {
        data.unifiedSocialCreditCode = unifiedSocialCreditCode;
    }

    $.ajax({
        url: '/customerRelation/addCustomerRelation',
        type: 'POST',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(data),
        success: (function (data) {
            if(data.code == '000000'){
                console.log(data.data);
                if (data.data == 'success') {
                    $('#addNewDataModal').modal('hide');
                    // formerName()
                    $('#usedNameTable').bootstrapTable('refresh');
                } else {
                     promptInfo(data.data);
                }
            } else {
                 promptInfo('错误代码：' + data.code);
            }
        }),
        error: (function (res) {
             promptInfo('请求失败');
        })
    })
}

/**
 * 功能：曾用名及企业关联 - 切换功能
 * 接口：白剑
 * 参数：customerRelationId-客户关联id; relationName-关联名称; unifiedSocialCreditCode-信用代码; inspectionType-状态 0-正确  1-错误 2-正在核验
 * */
function switchAction(customerRelationId, relationName, unifiedSocialCreditCode, inspectionType) {
    if(inspectionType == 0) {
        var data = {
            customerRelationId,
            relationName,
            unifiedSocialCreditCode,
            customerId
        }
        $.ajax({
            url: '/customerRelation/updateNameUsedBefore',
            type: 'POST',
            dataType: "json",
            contentType: "application/json;charset=utf-8",
            data: JSON.stringify(data),
            success: (function (data) {
                if(data.code == '000000'){
                    $('.customer-name').html(relationName);
                    if (unifiedSocialCreditCode) {
                        $('.credit span').html(unifiedSocialCreditCode);
                    }
                    $.alert({
                        title: '提醒',
                        content: "切换成功！",
                        buttons: {
                            confirm: {
                                text: '确认',
                                btnClass: 'btn-primary',
                                action: function () {
                                    $usedNameTable.bootstrapTable('refresh');
                                }
                            }
                        }
                    })
                } else {
                     promptInfo('错误代码：' + data.code);
                }
            }),
            error: (function (res) {
                 promptInfo('请求失败');
            })
        })
    }else{
        $.alert({
            title: '提醒',
            content: '您的核验状态有错误的或者正在核验中'
        });
    }

}

// 曾用名及企业关联 - 删除功能
function deleteAction(customerRelationId) {
    var data = {
        customerRelationId
    }
    $.ajax({
        url: '/customerRelation/deleteCustomerRelation',
        type: 'POST',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(data),
        success: (function (data) {
            if(data.code == '000000'){
                $usedNameTable.bootstrapTable('refresh');
            } else {
                 promptInfo('错误代码：' + data.code);
            }
        }),
        error: (function (res) {
             promptInfo('请求失败');
        })
    })
}
function openProductExhange(){
    reset();
    $("#productExchangeModal").modal("show");
    $('#productExchangeModal .modal-dialog').css({
        "top": 0,
        "left": 0})
}
function closeProductExhange(){
    $("#productExchangeModal").modal("hide")
}
//会员卡权益兑换
function productExchangeList(url,thName,thValue,id,singleSelect) {
    //singleSelect 是否单选
    let exchangeName = arguments[5]?arguments[5]:'兑换课程名称';
    let exchangeValue = arguments[6]?arguments[6]:'changeCourseTitle';
    $ruleTable.bootstrapTable('destroy');//先销毁表格
    $ruleTable.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url:url,//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        // height:400,
        dataType: "json",//数据类型
        striped: true,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: true,// 是否启用点击选中行
        maintainSelected: true,  // 分页是否保留选中
        singleSelect: singleSelect,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: id,
        idField: id,
        pageSize: 5,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: [5, 10, 15, 20],//可供选择的每页的行数
        fixedColumns: true,     // 冻结列
        fixedNumber: 1,    // 左侧固定列
        serverSelected: !singleSelect,// 开启后端分页记住已选项功能
        serverSelectedField: id,// 已选项的唯一识别主键
        queryParams: function(params){
            params.pageSize = params.limit;
            params.pageIndex = (params.offset / params.limit) + 1;
            params.sortName = params.sort; //排序列名
            params.sortOrder = params.order;//排序方式
            //搜索条件
            params.enableDisable = 1;
            return params;
        },//查询参数
        columns: [
            {field: id, visible: false},
            {checkbox: true, visible: true},
            {title: thName, field: thValue, align: 'left', valign: 'middle'},
            {title: exchangeName, field: exchangeValue, align: 'left', valign: 'middle'},
            // {title: '操作', field: 'operate', align: 'right', width: '100',formatter:function(value, row, index) {
            //         let html = `<div class="form-check">
            //       <label class="form-check-label">
            //         <input style="vertical-align: middle;margin-right:5px!important" class="form-check-input" onchange="checkedChange(this)" type="checkbox">勾选
            //       </label>
            //     </div>`;
            //         return html;
            //     }}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
                productListData=result.data;
                if(productListData.length==0){
                    $("#productExchangeModal .formContainer").hide()
                }else{
                    $("#productExchangeModal .formContainer").show()
                }
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {

        },

        // onLoadSuccess: function () {
        //     $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        // },
        onLoadError: function (status) {
            if (status == 403) {
                promptInfo("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                promptInfo("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        }
    });
}

function checkedChange(dom){
    let tableId=$(dom).parents("table").attr("id");
    if($(dom).is("input:checked")){
        $(dom).parents("tr").siblings("tr").find("input").attr({"checked":false})
    }

}
function changeRule(ruleType,target){
    $(target).parents(".new-tabs").find(".nav-item").removeClass("active");
    $(target).parent().addClass("active");
    switch (ruleType) {
        case 'days':
            productExchangeList('/csd/ProductExchange/selectProductSceneList','现场天数','sceneParameterDays','sceneCourseId',true)
            break;
        case 'communicate':
            productExchangeList('/csd/ProductExchange/selectProductIndustryList','行业会交流次数','industryExchangeNumber','industryCourseId',true)
            break;
        case 'product':
            productExchangeList('/csd/ProductExchange/selectProductHighClassList','产品名称','productName','highClassCourseId',false)
            break;
        case 'courseExchangeDays':
            productExchangeList('/csd/ProductExchange/selectHighClassExchangeDaysList','课程名称','productName','highClassExchangeFateId',true,'兑换天数','exchangeDays')
            break;
        case 'daysExchangeCommunication':
            productExchangeList('/csd/ProductExchange/selectSiteExchangeIndustryList','现场天数','siteDays','',true,'行业会次数','industryNumber')
            break;
        case 'communicationExchangeDays':
            productExchangeList('/csd/ProductExchange/selectIndustryExchangeSiteList','行业会次数','industryNumber','',true,'现场天数','siteDays')
            break;
    }
    $('#exchangeContractPic, #exchangeContractImg').val('');//清空附件
}
function getDataStr(data,fileName){
    let arr=[];
    data.filter((item)=>{
        arr.push(item[fileName])
    })
    return arr.join()

}
function submitRule(){
     let selectedRule=$("#ruleTable").find("input:checked");
     let selectHeaderTypeId=$("#productExchangeModal .new-tabs>.active a").attr("id");
     let selectTypeId='';
     if(selectHeaderTypeId=='memberCardExchangeNav'){
         selectTypeId=$("#memberCardExchange .new-tabs>.active a").attr("id");
     }else if(selectHeaderTypeId=='memberExchangeNav'){
         selectTypeId=$("#memberExchange .new-tabs>.active a").attr("id");
     }
     let selectRowData = selectTypeId=='productRule'?$ruleTable.bootstrapTable("getServerSelected", true):$ruleTable.bootstrapTable('getSelections');//选中行的数据
     if(selectRowData.length > 0){
         if(!!$("#exchangeContractPic").val()){
             let index=selectedRule.parents("tr").index();
             let type;
             // let selectRowData = $ruleTable.bootstrapTable("getServerSelected", true);//选中行的数据
             let exchangeSource,exchangeTarget;//兑换来源，兑换目标
             switch(selectTypeId){
                 case 'daysRule':
                     type=1;
                     exchangeSource='sceneParameterDays';
                     exchangeTarget='changeCourseTitle';
                     break;
                 case 'communicateRule':
                     type=2;
                     exchangeSource='industryExchangeNumber';
                     exchangeTarget='changeCourseTitle';
                     break;
                 case 'productRule':
                     type=3;
                     exchangeSource='productName';
                     exchangeTarget='changeCourseTitle';
                     break;
                 case 'courseExchangeDays':
                     type=4;
                     exchangeSource='productName';
                     exchangeTarget='exchangeDays';
                     break;
                 case 'daysExchangeCommunication':
                     type=5;
                     exchangeSource='siteDays';
                     exchangeTarget='industryNumber';
                     break;
                 case 'communicationExchangeDays':
                     type=6;
                     exchangeSource='industryNumber';
                     exchangeTarget='siteDays';
                     break;
             }
             let params={
                 type:type,
                 days:(type==1||type==2)?selectRowData[0][exchangeSource]:(type==4?selectRowData[0][exchangeTarget]:''),
                 changeCourseTitle:(type==1||type==2)?selectRowData[0][exchangeTarget]:(type==4?selectRowData[0][exchangeSource]:''),
                 courseProductCode:(type==1||type==2)?selectRowData[0].courseProductCode:(type==4?selectRowData[0].productCode:''),
                 productOrderId:productOrderId,//订单id
                 finishOrderProductNum:finishOrderProductNum,
                 ruleNumber:type!=3?selectRowData[0].ruleNumber:getDataStr(selectRowData,'ruleNumber'),
                 ruleTitle:type!=3?selectRowData[0].ruleTitle:getDataStr(selectRowData,'ruleTitle'),
                 changeProductCode:changeProductCode,//兑换完的产品编码
                 finishOrderProductId:finishOrderProductId,
                 finishProductName: finishProductName,//兑换完的产品名称
                 productId:productId,//产品id
                 // OrderProductNum:type!=3?selectRowData[0].finishOrderProductNum:getDataStr(selectRowData,'finishOrderProductNum'),//兑换完的产品号
                 uploadId:$('#exchangeContractPic').val(),//文件图片id
                 siteDays:type==5?selectRowData[0][exchangeSource]:(type==6?selectRowData[0][exchangeTarget]:''),//现场天数
                 industryNumber:type==5?selectRowData[0][exchangeTarget]:(type==6?selectRowData[0][exchangeSource]:''),//行业会次数
                 highName:type!=3?'':getDataStr(selectRowData,'changeCourseTitle'),
                 highCode:type!=3?'':getDataStr(selectRowData,'courseProductCode'),
                 highProductName:type!=3?'':getDataStr(selectRowData,'productName'),
                 highProductCode:type!=3?'':getDataStr(selectRowData,'productCode'),
                 productOriginalPrice:type!=3?'':getDataStr(selectRowData,'courseOriginalPrice'),
                 productType:(type==1||type==2)?selectRowData[0]['productType']:(type==3?getDataStr(selectRowData,'productType'):'')
             };
             $.ajax({
                 url: '/customerController/updateProductXcchHychGdb',
                 type: 'POST',
                 dataType:"json",
                 contentType: "application/x-www-form-urlencoded",
                 data:params,
                 async:false,
                 success:(function(data) {
                     if(data.code == "000000") {
                         if(data.data.code==0){
                             redeemProductTable();
                             closeProductExhange();
                             promptInfo('提交成功');
                         }else{
                             promptInfo('提交失败:'+data.data.msg)
                         }

                     }else{
                         promptInfo(data.message)
                     }
                 }),
                 error:(function(error) {
                     promptInfo(error.message)
                 })
             })

         }else{
             promptInfo("请上传附件")
         }


     }else{
          promptInfo("请选择规则")
     }
}
function exchangeWay(type){
    switch(type){
        case 'memberCardExchange':
            $("#daysRule").click();
            break;
        case 'memberExchange':
            $("#courseExchangeDays").click();
            break;
    }

}
function reset(){
    $("#memberCardExchangeNav").click();
    $('#exchangeContractPic, #exchangeContractImg').val('');
}

$(document).on("show.bs.modal",'#productExchangeModal',function(){
    $('body').removeClass("filter-blur");
    $(this).find('.modal-dialog').draggable();
})

function promptInfo(content, callBack, flag) {
    $.alert({
        title: '系统提示',
        content: content,
        buttons: {
            confirm: {
                text: '确认',
                btnClass: 'btn-primary',
                scrollToPreviousElement: flag || false,
                scrollToPreviousElementAnimate: flag || false,
                action: callBack
            }
        }
    });
}


















